6

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 は相対 URL であり、CDN を指すものではありません。例えば:

<script src="/js/c713f83.js"></script>

複数の CSS ファイルを結合する場合も同様です。CDN を使用して URL を取得できた唯一の方法は次のassetとおりです。

<img src="{{ asset('bundles/mybundle/images/logo.png') }} ">

設定で指定した CDN ホストを Assetic が使用するのを妨げているものはありますか?

4

1 に答える 1

9

asset_url生成された Asseticをasset()Twig の関数に渡す必要があります。

{% javascripts
  '@MyBundle/Resources/public/js/file-1.js'
  '@MyBundle/Resources/public/js/file-2.js' %}
  <script src="{{ asset(asset_url) }}"></script>
{% endjavascripts %}

dev環境では、のような URL を取得することに注意してくださいhttp://my.cdn.url/app_dev.php/js/file-1.jsdevCDN を使用しないように環境を構成する必要があるのを防ぐために、次のようにします。

# app/config/config_dev.yml
framework:
    templating:
        assets_base_urls:
            http: []
            ssl:  []

でアセットをダンプしたassetic:dumpことを思い出してください。全体として、AsseticSymfony2 assetTwig 関数は 2 つの異なるものであることを思い出してください。

于 2013-05-07T19:39:25.850 に答える