我对我生成的资产管理网站存在疑问。
在视图中,这就是我所做的:
{% block stylesheets %}
{% stylesheets
'assets/vendor/bootstrap/dist/css/bootstrap.min.css'
'assets/vendor/font-awesome/css/font-awesome.min.css'
'assets/vendor/dist/css/*.css'
output = 'bundles/compiled/css/app.css' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
{% javascripts
'assets/vendor/jquery/dist/jquery.min.js'
'assets/vendor/bootstrap/dist/js/bootstrap.min.js'
'assets/vendor/dist/js/wow.min.js'
'assets/vendor/dist/js/slider.js'
'assets/vendor/dist/js/jquery.fancybox.js'
'assets/vendor/dist/js/owl.carousel.min.js'
'assets/vendor/dist/js/main.js'
'assets/vendor/dist/js/modernizr-2.6.2.min.js'
output = 'bundles/compiled/js/app.js' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
在开发环境中,应用不会将这些输出链接称为assetic:dump
生成的链接:
束/编译/ CSS / app.css
和
束/编译/ JS / app.js /
在/ web文件夹之后。
生产中,我无法到达这些地点。我得到了404 例如http://link.com/bundles/compiled/css/app.css。
那么,如何配置我的config.yml
以便在prod
环境中覆盖该路径?
这就是我所拥有的:
assetic:
debug: '%kernel.debug%'
use_controller: '%kernel.debug%'
filters:
cssrewrite: ~
**编辑:**我发现了问题。我的资产配置没问题,问题出在VirtualHosts文件中(modrewrite line,具体而言),它只接受&#34; .php&#34;扩展文件和Web /文件夹权限。
答案 0 :(得分:0)
这是使用AsseticBundle
的全部意义!当您处于prod
模式时,您需要转储资产文件。看看here。
php bin/console cache:clear --env=prod //clear the cache for prod environment
php bin/console assetic:dump --env=prod --no-debug
结果将是一个结果文件(css
)中所有bundles/compiled/css/app.css
样式表的连接,以及一个结果文件中所有js
脚本的串联( bundles/compiled/js/app.js
),reducing the requests to the server
的原因。
此时,您无法在页面源中看到所有css + js文件,除了compiled/
目录中的那两个文件。
当您处于dev
模式时,AsseticBundle
的默认行为是生成所有css + js文件,以进行调试。也就是说,帮助您轻松调试代码。所以此时您将能够看到所有css + js文件,而不是compiled/
目录中的两个文件。
请注意,因为cssrewrite
必须是filters
的孩子。请参阅here您需要的更正。