【问题标题】:HTML5 Boilerplate .htaccess cache busting not working with WordPressHTML5 Boilerplate .htaccess 缓存破坏不适用于 WordPress
【发布时间】:2013-04-03 02:17:09
【问题描述】:

HTML5 Boilerplate (http://html5boilerplate.com/) 的 .htaccess 缓存设置非常棒,但我遇到了 JS 和 CSS 版本控制的缓存破坏设置问题。

<IfModule mod_rewrite.c>
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L]
</IfModule>

我似乎无法让它与 .htaccess 文件中已经存在的 WordPress 重写设置一起使用。

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.php$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]
</IfModule>

在最好的情况下,我的 JS 文件的重写永远不会发生。在最坏的情况下,它会破坏网站。

任何人都幸运地让它与 WordPress 一起工作?

【问题讨论】:

  • 所以已经六个月了。没有一个回应?惊讶!
  • “在最好的情况下,我的 JS 文件的重写永远不会发生。在最坏的情况下,它会破坏网站。”这是否意味着 script.000.js -> 404 not found; 某事 -> 500 服务器错误
  • 3 件可以玩的东西: 1-关闭任何 WP 缓存 (JetPack)。 2-通过 get param 将 rand var 附加到 JS/CSS 的末尾将欺骗“新文件”并终止缓存。 3-最近(过去 9-12 个月)我注意到浏览器正在缓存 HARDER,尤其是在使用带有 hash/# 的现代 JS 时。 (哈希扼杀了新的重新加载)。什么是缓存场景?本地 dev/prod/server 类型(例如,nginx 不同)。

标签: wordpress html5boilerplate


【解决方案1】:

您能否将一些 php.ini 设置嵌入到您的 .htaccess 中,然后测试网站的更改,只是为了测试您的 .htaccess 文件是否工作?

在大多数情况下我都经历过,有一些基于 CentOS 5.5 的系统没有显示的隐藏文件(不知道它是否已知错误)。但是,如果您创建一个具有相同名称的新文件 .htaccess,您将看到与原始文件不同的几行。

仅表示两者都是两个不同的文件。因此,只需尝试检查哪个与您的网站一起使用。此外,对于压缩 JS 和 CSS 文件,我在这里写了一个非常详细的教程 http://www.codeandcommand.com/web-based/how-to-optimize-joomla-3-x-pagespeed.html

【讨论】:

    【解决方案2】:
    • 确保您的缓存清除 URL 确实与重写模式 (script.0.js) 匹配
    • 将缓存清除重写规则放在 WordPress 之前
    • 如果您可以访问服务器配置并读取日志,请设置RewriteLog 2(或更高),然后查看重写日志。它们很难理解,但可以为您提供一些线索。
    • “在最坏的情况下,它会破坏站点。”如果这意味着您收到 500 个服务器错误,请检查您的服务器日志——它会告诉您是否存在重写循环。

    将 WordPress 的规则更改为

    RewriteRule ^[\w/-]+$ /index.php [L]
    

    看看有没有帮助。

    在最好的情况下,我的 JS 文件的重写永远不会发生。

    您看到的是 WordPress 的“未找到”响应还是 Apache 的?

    在最坏的情况下,它会破坏网站。

    Apache 服务器错误或 WordPress 错误?

    【讨论】:

      【解决方案3】:

      试试这些

      <IfModule mod_expires.c>
        ExpiresActive off
      </IfModule>
      <IfModule mod_headers.c>
        Header unset Cache-Control
      </IfModule>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-09
        相关资源
        最近更新 更多