Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache服务器端文件通过.htaccess缓存?_.htaccess_Caching_Apache2_Gzip_Deflate - Fatal编程技术网

Apache服务器端文件通过.htaccess缓存?

Apache服务器端文件通过.htaccess缓存?,.htaccess,caching,apache2,gzip,deflate,.htaccess,Caching,Apache2,Gzip,Deflate,我正在创建一个新网站,将包括几个JS库,我想知道。在缓存媒体和JS文件的情况下,htaccess文件模板应该是什么样子 压缩、GZip或放气有什么更好的方法 在谷歌CDN上提供这些JS库是否比在本地提供更好/更快的解决方案 我在问CDN问题,因为谷歌CDN提供的一些脚本可能会更新,并最终破坏网站布局,所以我认为最好在本地托管它们,并通过Web服务器缓存,如果它能以相同/接近相同的速度工作。(抱歉,代表太低,无法发表评论) 就包含几个js文件而言,在重新构建站点时,您应该记住一些事情。首先,这些文

我正在创建一个新网站,将包括几个JS库,我想知道。在缓存媒体和JS文件的情况下,htaccess文件模板应该是什么样子

  • 压缩、GZip放气有什么更好的方法

  • 在谷歌CDN上提供这些JS库是否比在本地提供更好/更快的解决方案

  • 我在问CDN问题,因为谷歌CDN提供的一些脚本可能会更新,并最终破坏网站布局,所以我认为最好在本地托管它们,并通过Web服务器缓存,如果它能以相同/接近相同的速度工作。

    (抱歉,代表太低,无法发表评论)

    就包含几个js文件而言,在重新构建站点时,您应该记住一些事情。首先,这些文件中的每一个都是一个请求,如果您为它们提供服务,它们将在您的服务器上产生一些开销。即使在cdn上,它仍然是客户端需要发出的请求。如果你的站点设置了cookie,那么每个请求都会因为cookie而增加一些开销。我之所以提到这一点,是因为您要求重新配置CDN。我的意思是,你应该首先考虑你要为内容服务,然后缓存。就我个人而言,我已经设置了第二个子url来提供此类内容,即static.website.com。通过这种方式,内容在请求中的开销更小,您可以利用并行下载。所以你是谷歌CDN,是的,如果你有大部分的东西。如果您担心它会改变或者只想在本地托管它,那么我建议您为此设置一个无cookie的域

    这就引出了缓存和压缩。如果您有许多文件,那么您可能需要考虑将它们组合成一个并提供服务。我要做的是得到我们使用的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移动站点,我从官方的repo提供这些文件。为什么?因为客户端的移动设备已经缓存了它,因此为他们节省了带宽。对于台式机,我不太在乎,但这在移动世界中有很大的不同

    我希望这能帮上忙,如果你需要更多信息,请告诉我

    干杯

    罗宾

    (抱歉,代表太低,无法发表评论)

    就包含几个js文件而言,在重新构建站点时,您应该记住一些事情。首先,这些文件中的每一个都是一个请求,如果您为它们提供服务,它们将在您的服务器上产生一些开销。即使在cdn上,它仍然是客户端需要发出的请求。如果你的站点设置了cookie,那么每个请求都会因为cookie而增加一些开销。我之所以提到这一点,是因为您要求重新配置CDN。我的意思是,你应该首先考虑你要为内容服务,然后缓存。就我个人而言,我已经设置了第二个子url来提供此类内容,即static.website.com。通过这种方式,内容在请求中的开销更小,您可以利用并行下载。所以你是谷歌CDN,是的,如果你有大部分的东西。如果您担心它会改变或者只想在本地托管它,那么我建议您为此设置一个无cookie的域

    这就引出了缓存和压缩。如果您有许多文件,那么您可能需要考虑将它们组合成一个并提供服务。我要做的是得到我们使用的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移动站点,我从官方的repo提供这些文件。为什么?因为客户端的移动设备已经缓存了它,因此为他们节省了带宽。对于台式机,我不太在乎,但这在移动世界中有很大的不同

    我希望这能帮上忙,如果你需要更多信息,请告诉我

    干杯