Assetic添加文件位于app / Resources / js中

时间:2013-11-21 15:39:47

标签: symfony assetic

我正在创建一个需要第三方js文件的包。根据文件:

http://symfony.com/doc/current/cookbook/bundles/best_practices.html#vendors

捆绑包不应包含第三方代码。由于捆绑仅用于站点的一部分,我不想将其包含在我的基本模板文件中 - 我想从twig文件中调用它,但我遇到了一个问题。

包含js的所有演示似乎都引用了一个包名,但我已将我的js放在app / Resources / public / js

如果我使用:

{% javascripts 
    "public/js/jquery.fileupload.js" %}
    <script src="{{ asset_url }}" type="text/javascript"></script>
{% endjavascripts %}

它在web目录中查找。有没有办法使用我的所有其他js文件的应用程序目录?我试图在可行的情况下遵循最佳实践,但我真的希望将js放在一个地方以简化,感谢阅读!

2 个答案:

答案 0 :(得分:0)

您可以通过符号链接Public中的app/Resources目录来完成此操作。它有点乱,但应该有用。

在* nix上,你可以运行:

cd ROOT_TO_YOUR_PROJECT/web/bundles
ln -s ../../app/Resources/Public common 

基本上,您正在创建指向common目录的Public符号链接。

然后:

{% javascripts 
    "bundles/common/js/jquery.fileupload.js" %}
    <script src="{{ asset_url }}" type="text/javascript"></script>
{% endjavascripts %}

答案 1 :(得分:-1)

这听起来与Symfony资产中的一个错误有关。当您运行app/console assetic:dump时,它不会以Web文件夹为基础,而是使用当前文件夹。请参阅:https://github.com/kriswallsmith/assetic/issues/202