最近わたしは appengineといえば slim3 (とscenic3) がデフォルトになってます。
とある事情で、
appengine (for java)パスが/hogehoge/ではじまる場合だけ、拡張子が.htmlなURLをstatic fileでなくresourceとして扱いたい、という事がありました。
appengine-web.xmlを
<static-files> <include path="**.html" /> <exclude path="/hogehoge/**.html" /> </static-files>
こんな風に書いてみましたがうまくいきません。
slim3 を使っている場合、これではダメの様です。
Slim3では拡張子付きのURLは動的リクエストとして扱いません。 したがって、AppRouterでisStaticをオーバーライドする必要があります。 public class AppRouter extends RouterImpl { @Override public boolean isStatic(String path) throws NullPointerException { return false; } } ここでは全てのリクエストをstaticとして扱っています。 Scenic3の設定でまとめて静的ファイルのパスを設定する、もしくはAppRouterで適切に静的ファイルを判定してください。 順序としては、先にAppRouterのisStaticで判定され、その後にScenic3のAppUrlsで判定されます。 Slim3 に Scenic3 と PirkaEngineを使う方法 - やさしいデスマーチ
参考サイトの例では全てのリクエストをstaticとして扱っています。
/hogehoge/はリソース固定、それ以外はよきに計らうと言う意味で、こんな感じですかね。
public class AppRouter extends RouterImpl { @Override public boolean isStatic(String path) throws NullPointerException { if (path == null) { throw new NullPointerException("The path parameter is null."); } if (path.startsWith("/hogehoge/")) { return false; } else { return super.isStatic(path); } } }
これで想定どおりになりました。