有几种方法可以在 Symfony 项目中包含 jQuery。你可以:
1. 使用前端包管理器(Bower)安装 jQuery
Symfony 文档指出:
Bower是用于前端依赖项的依赖项管理工具,例如 Bootstrap 或jQuery。
如果尚未安装 Bower,您可以使用 npm 全局安装它(需要节点):
npm install -g bower
根据Symfony 文档:
捆绑软件不应嵌入以 JavaScript、CSS 或任何其他语言编写的第三方库。
因此,我们将 jQuery 直接存储在web/
可公开访问的目录中。要告诉 Bower 在哪里安装软件包,请在 Symfony 项目根目录中创建一个.bowerrc文件,其中包含以下内容:
{
"directory": "web/assets/vendor/"
}
在您的项目根目录中执行bower init
以创建bower.json,它将定义已安装的包。为每个问题键入 enter 以回答默认值(为模块类型选择“全局”)。
Bower 已准备好在您的项目中安装 jQuery:
bower install --save jquery
现在您可以在模板中包含 jQuery:
<script src="{{ asset('assets/vendor/jquery/dist/jquery.min.js') }}"></script>
目前 Bower 没有Composer 上的“锁定”功能。这就是为什么您可能应该提交 Bower 下载的资产,而不是将该目录添加到您的 .gitignore 文件中。这可能会在未来发生变化:bower/bower#1748。
2. 用 Composer 安装 jQuery
即使 Composer 是 PHP 的依赖管理器,您也可以使用它来安装 jQuery。
为了使 Composer 能够安装 components /jquery等组件,您首先需要添加component-installer:
composer require robloach/component-installer
然后修改您的composer.json文件以包括:
"require": {
"components/jquery": "3.1.1"
},
"config": {
"component-dir": "web/assets/vendor"
},
并执行composer install
. web/assets/vendor
这将在目录中安装 jQuery 。
然后,您可以在模板中包含 jQuery:
<script src="{{ asset('assets/vendor/jquery/jquery.min.js') }}"></script>
3. 包含来自 CDN 的 jQuery
以谷歌 CDN 为例:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
关于使用 CDN 的优缺点,我建议您阅读此页面。
在所有情况下:
为了确保您的脚本(需要 jQuery)能够正常工作,必须首先加载 jQuery。因此,根据您的页面加载要求,您应该:
- 在您需要之前包含 jQuery,或者
- 将其包含在
<HEAD>
, 或
- 在你的脚本中使用defer