在页面刷新时,Chrome会在.htaccess重定向之前用404加载css和js链接

时间:2018-09-18 01:04:55

标签: javascript css angular .htaccess google-chrome

我有一个角度应用程序,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" />

非常感谢您的帮助

0 个答案:

没有答案