我已经安装了带有composer的jQuery。
现在jQuery在vendor/components/jquery
目录中。
我试着把它包括在/app/config/config.yml
中
assetic:
debug: "%kernel.debug%"
use_controller: false
filters:
cssrewrite: ~
assets:
jquery: %kernel.root_dir%/../vendor/components/jquery/jquery.min.js
如果我运行命令:
php app/console assetic:dump
我得到
[RuntimeException]
The source file "/home/user/project/app/current/app/../web/vendor/components/jquery/jquery.min.js" does not exist.
原因assetic仍在/web/
目录中查找,这是错误的。如何更改它,使其在/vendor/
目录中显示?此外,我不想把jquery文件放在公共捆绑文件夹中,因为这会阻碍通过composer获得正确版本的供应商库的所有感觉。
我不太喜欢在Symfony的供应商目录中安装jquery,因为它不是PHP库。Composer和vendor
目录只能用于PHP依赖项。您应该将前端部分与后端部分分开。所有的js、css和其他资产都应该放到其他地方。
因此,您有两个选项:
- 如果您希望每个捆绑包都有单独的资源,那么将用于前端的资源放在捆绑包的公共目录中:例如,将
jquery.min.js
放在捆绑的Resources/public/js
文件夹中
然后运行命令php app/console assets:install
。这将把你的js文件复制到web/bundles/yourbundle/js/
目录中。
最后,在您的trick文件中使用<script type="text/javascript" src="{{ asset('yourbundle/js/jquery.min.js') }}"></script>
来添加jquery。
- 如果所有捆绑包都有公共资源,请将资源直接放在
web
文件夹中,例如:web/js
、web/css
、web/img
。。。然后在树枝模板中使用<script type="text/javascript" src="{{ asset('js/jquery.min.js') }}"></script>
在关注评论中的链接并重试其他答案时,这非常容易。所有丢失的都是
composer require robloach/component-installer
有关robloach/组件安装程序的更多信息
然后手动将该行添加到composer.json
"config": {
#...
"component-dir": "web/assets",
#...
},
假设您已经拥有
composer require components/jquery
您可能需要重新运行命令
composer install
现在,它将创建一个目录/web/assets/jquery
,其中包含所有易于包含的文件。