我正在创建新网站并将包含几个 JS 库,并想知道.htaccess文件模板在缓存媒体和 JS 文件时应该是什么样子?
压缩、 GZip或Deflate哪个更好?
从谷歌 CDN 中提供这些 JS 库可能是在本地提供更好/更快的解决方案吗?
我在问 CDN 问题,因为 GoogleCDN 提供的一些脚本可能会更新并最终破坏网站布局,所以我认为如果它可以与相同/附近一起工作,我认为最好将它们托管在本地并通过网络服务器缓存-同样的速度。
(抱歉代表太低,无法发表评论)
就包括几个 js 文件而言,在重新构建站点时,您应该牢记一些事情。首先,这些文件中的每一个都是一个请求,如果您为它们提供服务,则会在您的服务器上产生一些开销。即使在 CDN 上,它仍然是客户需要提出的请求。如果您的站点设置有一个 cookie,那么每个请求都会因此而产生更多的开销。我提到这一点是因为您的缓存,因为您要求重新 CDN。我的意思是你应该首先考虑从哪里提供内容然后缓存。就我个人而言,我已经设置了第二个子 url 来提供此类内容,所以 static.website.com。这样,内容在请求中的开销就会减少,您可以利用并行下载。所以重新谷歌CDN,是的,如果你有最多的东西在那里。
这让我想到了缓存和压缩。如果您有很多文件,那么您可能需要考虑将它们全部合并为一个并提供服务。我所做的是获取我们使用的 15 个左右的 js 文件,将它们全部放入一个文件中并对其进行哈希处理,并将哈希值作为文件名。(注意,这是我在部署之前为构建步骤写的一个小东西)。这样,如果任何文件发生更改,则哈希值会更改,您将立即提供新内容。你缓存 js 文件一年的危险是你无法控制客户端机器来获取新文件,除非你更改它的名称。重新设置缓存和 cdn 以及多个 js 文件时要记住这些事情
就我个人而言,就像我说的,我将所有 js 文件合并为一个,然后将它们压缩成一个 min 文件(ajax minifier),然后使用它。我对 css 文件做同样的事情。它位于子域上并在那里提供服务。
在apache中,我有以下内容:
# Enable memory caching
CacheEnable mem /
# Limit the size of the cache to 50 Megabyte
MCacheSize 51200
AddOutputFilterByType DEFLATE application/x-javascript
ExpiresActive On
ExpiresDefault "access plus 1 second"
# hashed file so safe for long out cache
ExpiresByType text/javascript "access plus 1 years"
随着垃圾负载更多......但你明白了
最后一点,如果你正在构建一个移动站点,你真的必须记住保持低带宽成本的关键。这对答案有何影响?好吧,对于我的移动网站,我只有 2-3 个自定义 js 文件,我以相同的方式提供服务,但对于 jquery-mobile 的,我从官方 repo 提供。为什么?因为客户端的移动设备已经缓存了它,因此它为他们节省了带宽。对于台式机,我不太在意,但这在移动世界中有很大的不同。
我希望这对您有所帮助,如果您需要有关某事的更多信息,请告诉我,
干杯
罗宾