我正在创建一个需要第三方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放在一个地方以简化,感谢阅读!
答案 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