有几种方法可以在 Symfony 项目中包含 jQuery。你可以:
1。使用前端包管理器 (Bower) 安装 jQuery
>
Symfony documentation 声明:
Bower 是一个用于前端依赖的依赖管理工具,例如 Bootstrap 或 jQuery。
如果还没有安装 Bower,你可以使用 npm 全局安装它(需要节点):
npm install -g bower
根据Symfony documentation:
捆绑包不应嵌入以 JavaScript、CSS 或任何其他语言编写的第三方库。
因此,我们将 jQuery 直接存储在可公开访问的 web/ 目录中。要告诉 Bower 在哪里安装软件包,请在 Symfony 项目根目录中创建一个 .bowerrc 文件,其中包含以下内容:
{
"directory": "web/assets/vendor/"
}
在您的项目根目录中执行 bower init 以创建 bower.json,它将定义已安装的包。为每个问题输入 enter 以回答默认值(为模块类型选择“globals”)。
Bower 已准备好在您的项目中安装 jQuery:
bower install --save jquery
现在您可以在模板中包含 jQuery:
<script src="{{ asset('assets/vendor/jquery/dist/jquery.min.js') }}"></script>
目前 Bower 没有"lock" feature like on 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
>
以 Google CDN 为例:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
关于使用CDN的优缺点,我建议你阅读this page。
在所有情况下:
为了确保您的脚本(需要 jQuery)能够正常工作,必须首先加载 jQuery。因此,根据您的页面加载要求,您应该:
- 在需要之前包含 jQuery,或者
- 将其包含在
<HEAD> 中,或者
- 在您的脚本中使用defer