大家好。上有一个网站codeighniher
,诀窍是下一个。如果我更改样式或js
单独文件中的某些内容,那么为了获得更改,我需要通过清除缓存(ctrl+f5
在 chrome 中)刷新页面。
如果您只是刷新页面,则站点上没有任何更改。
如果您在 中编写样式html
,则信息以简单的方式更改没有任何问题f5。
可能是什么问题呢?在哪里挖?我正在上传文件以防万一。htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index.php|js|images|stylesheets|robots.txt)
RewriteRule ^(.*)$ index.php?/$1 [L]
AddDefaultCharset utf-8
<Files *>
Header set Cache-Control: "private, pre-check=0, post-check=0, max-age=0"
Header set Expires: 0
Header set Pragma: no-cache
</Files>
如果是
Nginx
前面Apache
并配置为快速返回静态(CSS、JS、图像),Apache 的控制权甚至不会转移。因此,设置 from.htaccess
不会影响 headers,并且 Nginx 经常配置为长期缓存:首先要弄清楚的是从 Web 服务器发送什么样的响应标头。这可以
Network
在 Chrome 开发者控制台或Сеть
Firefox 中的选项卡中完成。接下来,按掩码过滤.css
或.js
注意标题:Expires
(缺点是客户可能有错误的时间)和Cache-Control
(没有这个缺点)。通过卷曲:
为了避免缓存,它应该是:
或者
或
Expires
表示过去的日期(例如,减去 1 年)。要了解 Apache 是否参与了服务器响应的形成,您可以添加一个额外的标头,通过相同的
.htaccess
:如果无法设置 Web 服务器(如问题所示),则应将文件的修改日期作为
GET
-parameter 给出,如下所示:在这种情况下缓存也可以,但是当文件发生变化时,-
GET
参数会发生变化,这将迫使浏览器下载新版本。