Symfony2 Assetic链接到未定义的路由

时间:2017-07-02 10:16:31

标签: php symfony symlink assetic

我最近开始使用Symfony并且在我的资产方面遇到了一些问题。我使用Assetic并将我的资产放在Resources / public中,并以bundles / techdemo链接。

在我的树枝模板中,我有以下部分:

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

{% block javascripts %}
    {% javascripts 'bundles/techdemo/js/*' %}
    <script src="{{ asset_url }}"></script>
    {% endjavascripts %}
{% endblock %}

将我的所有.css和.js文件放入HTML头中。

这种方式有用..在我的浏览器源代码中我得到这样的东西:

<link rel="stylesheet" href="/css/ae8ddf1_part_1_style_8.css" />
<link rel="stylesheet" href="/css/ae8ddf1_part_1_tags_9.css" />
<link rel="stylesheet" href="/css/ae8ddf1_part_1_typeahead.tagging_10.css" />

<script src="/js/c81691d_part_1_bootstrap.min_1.js"></script>
<script src="/js/c81691d_part_1_initial.min_2.js"></script>
<script src="/js/c81691d_part_1_jquery-price-slider_3.js"></script>
<script src="/js/c81691d_part_1_jquery.barrating.min_4.js"></script> 

但路径错了。我访问localhost:8000/app_dev.php/下的项目,因此文件链接到例如localhost:8000/app_dev.php/js/c81691d_part_1_bootstrap.min_1.js,这会引发未定义路由的开发。

这是我的资产配置:

assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    bundles:        [ TechDemoBundle]
    filters:
        cssrewrite: ~

我已阅读过众多消息来源但尚未找到解决方案。我使用的是最新的2.8版本。

编辑:

对一个文件使用显式路径可以正常工作:

<link rel="stylesheet" href="{{ asset('bundles/techdemo/css/style.css') }}" />

来源中的链接是:localhost:8000/bundles/techdemo/css/style.css

如何更改多个资产的目录?

1 个答案:

答案 0 :(得分:0)

尝试更改app / config / config.yml:

framework:
    templating:
      engines: ['twig']
      assets_base_urls:
        http: [http://yourhost.com]