modera / mjr-cache-aware-class-loader
Requires
- php: >=5.6
- modera/mjr-integration-bundle: ~3.1|~4.0
- sergeil/expander-bundle: ^1.0
Requires (Dev)
- modera/foundation-bundle: ~3.1
- phake/phake: ^2.0
- phpunit/phpunit: ^5.5
- dev-master / 4.x-dev
- 3.x-dev
- v3.1.0
- v3.0.0
- 2.x-dev
- v2.57.0
- v2.56.0
- v2.55.0
- v2.54.0
- v2.53.0
- v2.52.2
- v2.52.1
- v2.52.0
- v2.51.1
- v2.51.0
- v2.0.50
- dev-sf3
- dev-MPFE-1005
- dev-MPFE-1007
- dev-MPFE-1014
- dev-MPFE-1014-2
- dev-MPFE-1017
- dev-MPFE-1029
- dev-MPFE-963
- dev-MPFE-975
- dev-MPFE-977
- dev-crub_pagination_fetch_fix
- dev-direct-bundle-csrf
This package is auto-updated.
Last update: 2024-08-29 03:35:45 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