首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在将资产与Symfony2和Assetic合并时使用CDN

问在将资产与Symfony2和Assetic合并时使用CDN
EN

Stack Overflow用户
提问于 2013-05-07 21:54:01
回答 1查看 5.1K关注 0票数 6

我想在我的Symfony2项目中一起使用CDN和Assetic。我正在使用javascripts助手来组合几个Javascript文件:

代码语言: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:

代码语言:javascript
复制
framework:
    templating:
      assets_base_urls:
        http: [http://my.cdn.url]
        ssl: [https://my.cdn.url]

转储时,我确实得到了一个组合文件,但它的url是相对的,而不是指向CDN的。例如:

代码语言:javascript
复制
<script src="/js/c713f83.js"></script>

当组合几个CSS文件时,也会发生同样的情况。我使用CDN获取URL的唯一方法是通过asset

代码语言:javascript
复制
<img src="{{ asset('bundles/mybundle/images/logo.png') }} ">

是否有什么阻止Assetic使用我在配置中指定的CDN主机?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-08 03:39:26

您必须将Assetic生成的asset_url传递给asset()的函数:

代码语言:javascript
复制
{% 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。

代码语言:javascript
复制
# app/config/config_dev.yml
framework:
    templating:
        assets_base_urls:
            http: []
            ssl:  []

请记住使用assetic:dump转储资产,总的来说,请记住Assetic和Symfony2 asset Twig function是两个不同的东西。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16420866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档