javascript - 无法在某些项目上使用浏览器
问题描述
我在 .htaccess 中尝试了所有不同的命令,由于某种原因,一些项目不会缓存,这会降低我的网站速度。以下是其中之一的示例:
# TN - START EXPIRES CACHING #
ExpiresActive On
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresDefault "access 1 month"
# TN - END EXPIRES CACHING #
# TN - BEGIN Cache-Control Headers
<ifModule mod_headers.c>
<filesMatch "\.(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "public"
</filesMatch>
<filesMatch "\.(css)$">
Header set Cache-Control "public"
</filesMatch>
<filesMatch "\.(js)$">
Header set Cache-Control "private"
</filesMatch>
<filesMatch "\.(x?html?|php)$">
Header set Cache-Control "private, must-revalidate"
</filesMatch>
</ifModule>
# TN - END Cache-Control Headers
# TN - BEGIN Turn ETags Off
FileETag None
# TN - END Turn ETags Off
但是当我运行速度测试时,我仍然得到:
https://cdn.rlets.com/capture_static/mms/capture.js (expiration not specified)
https://cdn.rlets.com/capture_static/mms/mms.js (expiration not specified)
https://mywebsite.ico (expiration not specified)
https://www.google.com/recaptcha/api.js?onload=bwpRecaptchaCallback&render=explicit (5 minutes)
https://www.google.com/recaptcha/api2/webworker.js?hl=en&v=v1531759913576 (5 minutes)
https://www.google-analytics.com/analytics.js (2 hours)
我设置了javascript过期,为什么还有JS出现?知道如何解决这些问题,这真的会减慢我的网站速度吗?谢谢
解决方案
您只能为您控制的脚本文件设置缓存标头。这些脚本位于不同的服务器上,因此这些服务器正在设置自己的缓存策略。
另外——ExpiresByType text/html "access 1 month"
这似乎不是一个好主意。如果您更新了您网站的某个页面,那么访问者最多可能需要一个月的时间才能看到新内容。
推荐阅读
- c# - 我可以在同样使用相机的 Hololens 中录制应用程序的视频吗?有没有办法做到这两点?
- css - 如果无效,CSS 变量默认为 SVG 填充
- google-cloud-platform - 如何修复 terraform 资源“google_cloud_scheduler_job”的“错误 400:'job.pubsub_target.data' (TYPE_BYTES) 的值无效”
- amazon-web-services - 无服务器授权者作为 AWS 用户池
- c# - 从由 Form 1 创建的 Form 2 更新 Form 1 中的控件
- amazon-dynamodb - 从 AWS Dynamodb CLI 查询 GSI
- java - 如何将 2 个 HashMap 合并在一起?
- python - 满足条件时如何求第一行与该行的时间差?
- python - 如何使用 if 条件捕获函数返回值
- ruby - Parse Recursive Collect Deep Nested Category XML children with parents Ids