【问题标题】:Clear server's cached files清除服务器的缓存文件
【发布时间】:2016-07-11 02:24:59
【问题描述】:

如果我通过 FTP 将文件加载到我的服务器(apache),该文件是正确的上传文件,但是当我在任何浏览器中打开它时,会显示该文件的旧版本(顺便说一句,它是一个 php 文件) .我认为,重置服务器缓存可以解决问题,但我该怎么做呢?

我可以为此使用 php 吗?我在网上找到了一个叫做 htcacheclear 的东西,但我不明白。如何使用它。主要问题是,我无法访问终端或控制台,这很容易......

有什么办法吗?

【问题讨论】:

  • 第一件事是检查,你正在修改的文件,真的是你正在访问的那个吗?服务器通常不会开箱即用地缓存这些文件。您需要专门的软件才能真正实现它。
  • @LionelChan 我已经检查过了...
  • 文件的版本是多少?是不是落后了一步,它已经完全老了?我想你甚至可以上传到不同的目录,或者什么的。还要确保服务器响应没有与标头一起缓存,并且您在浏览器中获得新鲜,清理浏览器缓存。
  • 你确定是服务器缓存它,而不是你的客户端?浏览器中的 shift-F5 强制“新鲜”获取。
  • 我已经用几个浏览器试过这个,所有的缓存都清除了,没有任何改变。我 100% 确定是服务器缓存

标签: php apache caching server


【解决方案1】:

1) 只需更改文件名即可提供新文件。

2) 您可以使用 Apache httpd.conf 来执行此操作。 从 httpd.conf 启用 mod_headers.so 模块并在文件末尾应用这些设置。

<IfModule mod_headers.c>
    ExpiresActive On
    <FilesMatch "!.(gif|jpe?g|png|js|css|php)$">
        ExpiresACtive On
        ExpiresDefault "access plus 1 year"
        Header unset Cookie
        Header unset Set-Cookie
        php_value session.cookie_domain example.com
    </FilesMatch>
    <FilesMatch "\\.(x?html?|php)$">
        Header set Cache-Control "max-age=600, private, must-revalidate"
    </FilesMatch>
    <FilesMatch "\\.(ico|jpe?g|png|gif|swf|woff)$">
        Header set Cache-Control "max-age=31536000, public"
        Header unset Cookie
        Header unset Set-Cookie
    </FilesMatch>
    <FilesMatch "\\.(css)$">
        Header set Cache-Control "max-age=2692000, public"
        #ExpiresDefault A29030400
    </FilesMatch>
    <FilesMatch "\.(js)$">
        #Header set Cache-Control "max-age=2692000, public"
        ExpiresDefault A29030400
    </FilesMatch>
    <FilesMatch "\\.(js|css|xml|gz)$">
        Header append Vary: Accept-Encoding
    </FilesMatch>
    Header unset Pragma
    FileETag None
    Header unset ETag
    Header append Cache-Control "public"
</IfModule>

【讨论】:

  • 感谢您的回复!您的第一个解决方案是我已经使用的东西,但这让我很恼火。我会尝试第二个,但是我应该把这个文件放在哪里?“在文件末尾应用设置”是什么意思?
  • 如果你的环境是windows那么这个文件位于xampp\apache\conf中。
  • 是的,但在我的本地主机中它可以工作。我应该将文件放在 apache 服务器上的什么位置?在根目录中?
  • 有时重新启动 Apache 服务器会将新的 ETag 附加到文件并清除缓存。
  • 这对我不起作用,重命名文件在这里是没有选择的。
猜你喜欢
  • 1970-01-01
  • 2019-01-01
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多