利用浏览器缓存 |修改.htaccess 文件| - 不适用于 javascript 文件

Posted

技术标签:

【中文标题】利用浏览器缓存 |修改.htaccess 文件| - 不适用于 javascript 文件【英文标题】:Leverage browser caching | modifying .htaccess file | - not working for javascript files 【发布时间】:2012-05-17 16:04:46 【问题描述】:

我正在尝试通过指定资源的过期时间来修改我的 .htaccess 文件。 它适用于图像,但不适用于 javascript 文件。运行 GTMetrix 时,它仍然建议 javascript 文件需要过期。我尝试过“application/javascript”和“application/x-javascript”,但无济于事。

不知道我做错了什么。

这是我的代码:

     ## EXPIRES CACHING ##
    <IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access 1 year"
    ExpiresByType image/jpeg "access 1 year"
    ExpiresByType image/gif "access 1 year"
    ExpiresByType image/png "access 1 year"
    ExpiresByType text/css "access 1 month"
    ExpiresByType application/pdf "access 1 month"
    ExpiresByType application/javascript "access 1 week"
    ExpiresByType application/x-shockwave-flash "access 1 month"
    ExpiresByType image/x-icon "access 1 year"
    ExpiresDefault "access 2 days"

    </IfModule>
    ## EXPIRES CACHING ##

【问题讨论】:

【参考方案1】:

添加它会使其工作。

ExpiresByType text/x-javascript "access plus 1 month"  
ExpiresByType application/javascript "access plus 1 month"  
ExpiresByType application/x-javascript "access plus 1 month"

【讨论】:

这对我有用。我失踪的是application/javascript【参考方案2】:

使用浏览器检查器 Chrome/FireFox/Opera 中的“网络”选项卡,您可以检查资产并查看正在提供哪种“内容类型”。

在我的情况下 Content-Type:"text/javascript"

所以我在我的 .htaccess 文件中添加了 4 个 ExpiresByType 排列

ExpiresByType text/javascript "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"  
ExpiresByType application/x-javascript "access plus 1 month"

这解决了我的问题,希望对其他人有所帮助。

【讨论】:

以上是关于利用浏览器缓存 |修改.htaccess 文件| - 不适用于 javascript 文件的主要内容,如果未能解决你的问题,请参考以下文章

apache_conf Laravel .htaccess文件,利用浏览器缓存和gzip压缩

利用浏览器缓存 - 更新不起作用

通过.htaccess利用WordPress中的浏览器缓存

apache_conf htaccess:利用浏览器缓存的指令

apache_conf 通过htaccess利用浏览缓存。

apache_conf 通过htaccess利用浏览缓存。