Symfony3&资产:开发或生产中的不同行为

时间:2018-01-10 09:26:47

标签: symfony assetic symfony3.x symfony-3.4

我正在研究Symfony 3.4和Assetic。 让我们说我的网站是www.mycompany.com,并且我使用了2种特殊类型的资产:

  • 我的主要CSS文件中的@Import()的Google网络字体
  • 自定义CSS字体,手动上传字体文件在web / fonts /

当我以开发模式访问我的网站www.mycompany.com/app_dev.php/时:

  • 谷歌字体装载良好且有效。
  • 字体真棒不起作用(因为app_dev.php / fonts /是404)

当我以产品模式www.mycompany.com/访问我的网站时:

  • Google字体无法正常工作(@import似乎无法加载......)
  • 字体很棒的工作(因为css文件可以在www.mycompany.com/fonts /中找到)

为什么会这样?为了您的信息,我以这种方式使用Assetic来加载myu资产:

{% stylesheets '@PimInterfaceBundle/Resources/public/css/*' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

// Same for JS

感谢。

1 个答案:

答案 0 :(得分:0)

使用cssrewrite过滤器时,请不要使用 @XxBundle 语法来引用CSS文件。

试试这个

{% stylesheets 'bundles/piminterface/css/*' filter='cssrewrite' %}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

这是doc

  1. Including CSS Stylesheets

  2. Fixing CSS Paths with the cssrewrite Filter

  3. Dumping Asset Files in the prod Environment

  4. 如果这对您不起作用,请尝试php bin/console asset:install

    in prod php bin/console assetic:dump --env=prod --no-debug `