我有一个角度应用程序,index.php页面设置为
<base href="app_dev" />
我想从www.example.com/app_dev/加载CSS并编译js。我有一个htaccess文件,可将任何资产链接重定向到索引页
RewriteEngine On
# This will enable the Rewrite capabilities
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$https://www.example.com%{REQUEST_URI} [R]
AddType application/x-httpd-php .php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index
RewriteCond %{REQUEST_URI} !\.(?:css|js|map|jpe?g|gif|png)$ [NC]
RewriteRule ^.* /app_dev/index.php [NC,L,QSA]
在IE和Mozilla上一切正常。
当我们在相对路径上刷新页面时,问题就会在chrome上出现
www.example.com/app_dev/activities
www.example.com/app_dev/people
两次访问css和js文件(在发生重定向之前)
www.example.com/app_dev/activities/assets/css/bootstrap.min.css
以及重定向的一个(在htaccess重定向之后)
www.example.com/app_dev/assets/css/bootstrap.min.css
问题是我们甚至在htaccess重定向启动之前就收到404错误
GET https://www.example.com/cma_dev/activities/assets/css/bootstrap.min.css net::ERR_ABORTED 404 (Not Found)
该站点正在运行,但是所有这些链接首先在控制台中导致404错误,然后从重定向路径加载。
我可以通过注释掉.htaccess中的这一行来删除控制台错误
#RewriteCond %{REQUEST_URI} !\.(?:css|js|map|jpe?g|gif|png)$ [NC]
,但每次刷新时该网址仍然两次。
一切都可以在Mozilla和IE上完美运行,我只能通过chrome获得此问题。有人用angular 4 webapp碰到过这样的问题吗?
我的css和js资产是这样加载的,并在href中的资产不起作用之前添加一个'/'。
<link rel="stylesheet" type="text/css" href="assets/css/bootstrap.min.css" />
非常感谢您的帮助