我想将除静态资源(例如js,图像等)之外的任何链接指向我的index.html。我做了以下更改。
我在context.xml
目录中添加了app.war/META-INF
,其中包含:
<Context>
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
</Context>
我在rewrite.config
目录中也有app.war/WEB-INF
,其中包含:
RewriteCond %{REQUEST_URI} ^/(css|img|js|partials|rest|favicon).*$
RewriteRule ^.*$ - [L]
RewriteRule ^.*$ /index.html [L,QSA]
但是,通过上述设置,会发生的是我的所有js和css文件都显示index.html
内容(在浏览器控制台中)。你能告诉我这里会出现什么问题吗?
答案 0 :(得分:1)
您的最终规则会将所有内容重新写入/index.html
:
RewriteRule ^.*$ /index.html [L,QSA]
如果您认为上述规则首先匹配,那么您是对的,除了对文件的请求,例如/styles.css
与静态工件的表达式不匹配:
RewriteCond %{REQUEST_URI} ^/(css|img|js|partials|rest|favicon).*$
问题是您要求请求URI的css
部分后面至少有一个字符。对/css/style.css
的请求应该有效。