最近わたしは 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);
        }
    }
}

 

これで想定どおりになりました。