1

我想将静态资源以外的任何链接(例如 js、图像等)指向我的 index.html。我做了以下更改。

我添加了一个context.xmlinapp.war/META-INF目录,其中包含:

<Context>
  <Valve className="org.apache.catalina.valves.rewrite.RewriteValve" /> 
</Context>

rewrite.configapp.war/WEB-INF目录中也包含:

RewriteCond %{REQUEST_URI} ^/(css|img|js|partials|rest|favicon).*$
RewriteRule ^.*$ - [L] 
RewriteRule ^.*$ /index.html [L,QSA]

但是,通过上述设置,我的所有 js 和 css 文件都会显示index.html内容(在浏览器控制台中)。你能建议这里有什么问题吗?

4

1 回答 1

1

您的最终规则将所有内容重写为/index.html

RewriteRule ^.*$ /index.html [L,QSA]

如果您认为上述规则将首先匹配,那么您是对的,除了对文件的请求例如/styles.css与静态工件的表达式不匹配:

RewriteCond %{REQUEST_URI} ^/(css|img|js|partials|rest|favicon).*$

问题是您要求css请求 URI 的一部分后面至少有一个字符。一个请求/css/style.css应该工作。

于 2017-01-06T16:01:33.813 回答