如何使Symfony2直接加载CSS,JS文件而不是通过PHP?
老问题,请参阅下面的更新版本
我的开发环境不是最快的。我每个PHP请求大约需要500ms。Symfony2 资源文件开始成为一个问题,因为每个资源文件都是通过 Symfony 的内部控制器请求的:
http://localhost/myproj/app_dev.php/js/bb8690a_part_4_myJavaScriptFile_2.js
可以看出,这些文件是通过Symfony框架加载的,而不是直接加载的。由于我开始加载超过20个文件,因此将其与500ms相乘会使页面加载速度非常慢。我想直接加载文件,但我不确定如何做到这一点。
这是以下部分的一部分:config.yml
# Assetic Configuration
assetic:
debug: %kernel.debug%
use_controller: false
# java: /usr/bin/java
filters:
cssrewrite: ~
我以为设置会这样做,但没有。use_controller
false
有没有办法直接处理这些资源的加载?
更新:
这是它现在尝试使用的 URL:
http://localhost/myproj/_controller/js/bb8690a_part_4_myJavaScriptFile_2.js
我已设置为用于开发和常规配置。如何删除 URL 的这一部分?use_controller
false
_controller
编辑:如果我清除缓存,运行并拥有,然后在重新加载时,我得到.我无法解决这个问题,除非我暂时启用一个页面加载。之后,我禁用它并重新加载,现在它从包含的无效URL请求。assetic:dump
use_controller
false
Cannot load resource "."
use_controller
_controller
它似乎也适用于 prod,但在 Dev. Strange 中不起作用。
模板代码:
{% stylesheets filter="cssrewrite"
'bundles/outotecofil/css/reset.css'
'bundles/outotecofil/css/*'
output='css/dist/dist.css'
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% javascripts
'@OutotecCommonBundle/Resources/public/js/jquery-1.6.2.min.js'
'@OutotecCommonBundle/Resources/public/js/jquery-ui-1.8.16.custom.min.js'
'@OutotecCommonBundle/Resources/public/js/chosen.jquery.min.js'
'@OutotecCommonBundle/Resources/public/js/widget/*'
'@OutotecOFILBundle/Resources/public/js/OFILDependencyManager.js'
'@OutotecOFILBundle/Resources/public/js/widget/*'
'@OutotecOFILBundle/Resources/public/js/plant-scope.js'
output='js/dist/dist.js'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
非常清楚:没有app_dev.php(即在生产模式下),它可以工作。只有在开发中,它不会并抛出此“无法加载资源”.“错误,除非我首先为一个请求启用,之后我可以禁用它并重新加载,尽管URL将包含在其路径中。use_controller
_controller/