我想在我的Symfony2项目中一起使用CDN和Assetic。我正在使用javascripts助手来组合几个Javascript文件:
{% javascripts
'@MyBundle/Resources/public/js/file-1.js'
'@MyBundle/Resources/public/js/file-2.js' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}在我的config.yml文件中,我注册了一个要在资产中使用的CDN:
framework:
templating:
assets_base_urls:
http: [http://my.cdn.url]
ssl: [https://my.cdn.url]转储时,我确实得到了一个组合文件,但它的url是相对的,而不是指向CDN的。例如:
<script src="/js/c713f83.js"></script>当组合几个CSS文件时,也会发生同样的情况。我使用CDN获取URL的唯一方法是通过asset
<img src="{{ asset('bundles/mybundle/images/logo.png') }} ">是否有什么阻止Assetic使用我在配置中指定的CDN主机?
发布于 2013-05-08 03:39:26
您必须将Assetic生成的asset_url传递给asset()的函数:
{% javascripts
'@MyBundle/Resources/public/js/file-1.js'
'@MyBundle/Resources/public/js/file-2.js' %}
<script src="{{ asset(asset_url) }}"></script>
{% endjavascripts %}请注意,在dev环境中,您将获得类似于http://my.cdn.url/app_dev.php/js/file-1.js的URL。
# app/config/config_dev.yml
framework:
templating:
assets_base_urls:
http: []
ssl: []请记住使用assetic:dump转储资产,总的来说,请记住Assetic和Symfony2 asset Twig function是两个不同的东西。
https://stackoverflow.com/questions/16420866
复制相似问题