gpt4 book ai didi

javascript - 为什么 Leverage 浏览器缓存不适用于 Javascript?

转载 作者:行者123 更新时间:2023-11-28 05:56:56 25 4
gpt4 key购买 nike

当通过 Google 页面速度测试运行我的网站时,它说我需要“利用浏览器缓存在静态资源的 HTTP header 中设置到期日期或最长期限会指示浏览器从本地磁盘加载以前下载的资源,而不是通过网络加载。”

然后它列出了我的内部 Javascript 文件,为什么下面的代码不起作用并解决这个问题?

这是 htaccess 文件的大小:

## 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 text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##

<FilesMatch "\\.(js|css|html|htm|php|xml)$">
SetOutputFilter DEFLATE
</FilesMatch>

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl|jpg|png|gif)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

谢谢

最佳答案

您已经指定text/x-javascript类型的文件应该是可缓存的,但是您是否告诉网络服务器如何识别此类文件?正如 DanFromGermany 所说,mimetype 确实应该是 application/javascript然而,在您的网络服务器中,这只是一个任意标签。您的网络服务器可能已配置为将 .js 结尾的文件识别为 javascript,在这种情况下,只需更改 mod_expires block 中的相应行即可。您可以在 firebug 中看到 Web 服务器返回的 mimetype,即 httpheaders,使用wireshark 监视连接或从命令行使用 wget/curl。

如果您的网络服务器返回 application/javascripttext/x-javascript 以外的内容,请检查 mime.types 中的条目> 包含 apache 配置的目录中的文件。

关于javascript - 为什么 Leverage 浏览器缓存不适用于 Javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37590632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com