Symfony2 Assetic在dev中生成死链接

时间:2013-05-17 12:05:39

标签: php symfony assetic

我会尽量保持简短,不想浪费你的时间。在开发环境中工作:

模板:

{% block javascripts %}
   {% javascripts '@SomeBundle/Resources/public/js/*' %}
      <script type="text/javascript" src="{{ asset_url }}"></script>
   {% endjavascripts %}

{% endblock %}

html输出:

<script type="text/javascript" src="/js/98b0881_part_1_fill_form.jquery_1.js"></script>                            
<script type="text/javascript" src="/js/98b0881_part_1_jquery-1.8.3.min_2.js"></script>

所以它读取Resources / public / js dir的内容,并使用正确的名称生成正确数量的链接。当我点击给定的网址时,我得到404 apache响应:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
        <title>404 Not Found</title>
    </head><body>
    <h1>Not Found</h1>
    <p>The requested URL /js/98b0881_part_1_jquery-1.8.3.min_2.js was not found on this server.</p>
    <hr>
    <address>Apache/2.2.22 (Ubuntu) Server at ipardon.loc Port 80</address>
</body></html>

这几乎意味着我的页面上没有JS。 我试过了什么:

app/console assets:install web --no-dev
app/console assetic:dump --no-dev

将config.yml中的包名称添加到assetic.bundles [] 谷歌(当然)

之前有人遇到过这样的事吗?我有,并且通过不使用资产来“解决”它,但我想这次正确。有什么想法吗?

2 个答案:

答案 0 :(得分:5)

here所述,您可以使用

php app/console assetic:dump --watch

如果资产发生变化,它会自动转储资产。

this发布该主题的信息

答案 1 :(得分:1)

在生产中,每个部署只需要转储一次,这可以自动化(参见Capifony)。

在开发中不要使用--no-dev参数,这只会使资产转储编译文件,忽略部分/js/98b0881_part_1_jquery-1.8.3.min_2.js