modera/mjr-cache-aware-class-loader

v3.1.0 2019-05-23 10:49 UTC

README

这个包为MJR应用程序启用了浏览器缓存机制,因此一旦页面加载,所有脚本都将永久缓存到客户端浏览器中,后续的页面加载将不需要再次加载任何预缓存脚本。简而言之,这个包的工作原理如下 - 它调整用于动态加载您的脚本的Ext.Loader类,以便附加所谓的版本号。当包配置后,它将给所有加载的脚本文件附加该版本号,并且与适当配置的Web服务器(提供的apache/nginx指令)一起,下次页面加载时将使用预缓存的脚本。

安装

步骤1:下载包

composer require modera/mjr-cache-aware-class-loader:4.x-dev

此命令要求您已全局安装Composer,如Composer文档中的安装章节中所述。

步骤2:启用包

此包应该由Flex自动启用。如果您不使用Flex,您需要手动在项目的config/bundles.php文件中添加以下行以启用该包

<?php
// config/bundles.php

return [
    // ...
    Modera\MJRCacheAwareClassLoaderBundle\ModeraMJRCacheAwareClassLoaderBundle::class => ['all' => true],
];

可选地,您可以使用包的语义配置指定版本号,为此您需要将以下内容添加到您的配置文件中

// config/packages/modera.yaml

modera_mjr_cache_aware_class_loader:
    version: "1.5.0"

Apache2

为了指示客户端浏览器应使用缓存,我们需要安装mod_expires apache模块。在类似Debian的系统上,可以通过执行以下命令来完成

sudo a2enmod expires
sudo service apache2 restart

一旦模块被启用,您可以将与包一起提供的Resources/server/.htaccess文件放入您的Web目录。请随意调整提供的.htaccess文件,因为它唯一需要的是<IfModule mod_expires.c>部分。如果缓存仍然不起作用,请确保启用了对.htaccess文件的支持(检查/etc/apache2/sites-enabled/目录中的虚拟主机定义或如果您不使用虚拟主机,请查看/etc/apache2/apache2.conf,请确保配置属性AllowOverride<Directory>配置部分中设置为All)。

Nginx

更新您的虚拟主机(类似Debian的系统默认位置为/etc/nginx/sites-enabled),并将以下内容添加到您的server配置部分

location ~*\.js\?v=$ {
    expires 1y;
}

然后重启nginx

sudo service restart nginx

文档

该包提供了一些配置属性,您可以使用它们来更好地调整它以适应您的需求,有关更多信息,请参阅\Modera\MJRCacheAwareClassLoaderBundle\DependencyInjection\Configuration

许可

此包受MIT许可协议的约束。请参阅包中的完整许可协议:Resources/meta/LICENSE