Ale*_*tau 5 php jquery symfony
我是Symfony2框架的新手,并不完全了解如何使用javascripts以及如何以最佳方式包含它们.
我需要的:将jQuery脚本包含在每个页面中.
我拥有:我有这样的共同布局:
<!DOCTYPE html>
<html>
<head>
{% block javascripts %}{% endblock %}
</head>
<body>
{% block body %}{% endblock %}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
应该放置jquery.js.那么web/bundles/jquery呢?或者有一些特殊的官方jquery捆绑?我应该使用asset()以及如何使用?
Tou*_*uki 13
假设您的jquery.min.js位于
src/Acme/FooBundle/Resources/public/js/
你可以使用其中之一
<script type="text/javascript" src="{{ asset('bundles/acmefoo/js/jquery.min.js') }}"></script>
Run Code Online (Sandbox Code Playgroud)
要么
{% javascripts
'@AcmeFooBundle/Resources/public/js/jquery.min.js'
%}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
Run Code Online (Sandbox Code Playgroud)
进入你的树枝模板.
确保之后安装了资产或运行此命令
php app/console assets:install web --symlink
Run Code Online (Sandbox Code Playgroud)
有几种方法可以在Symfony项目中包含jQuery.您可以:
该Symfony的文件中指出:
Bower是前端依赖的依赖管理工具,如Bootstrap或jQuery.
如果尚未安装Bower,则可以使用npm(require node)全局安装它:
npm install -g bower
Run Code Online (Sandbox Code Playgroud)
根据Symfony文档:
捆绑包不应嵌入用JavaScript,CSS或任何其他语言编写的第三方库.
因此,我们将jQuery直接存储在web/可公开访问的目录中.要告诉Bower在哪里安装软件包,请在Symfony项目根目录中使用以下内容创建一个.bowerrc文件:
{
"directory": "web/assets/vendor/"
}
Run Code Online (Sandbox Code Playgroud)
bower init在项目根目录中执行以创建将定义已安装包的bower.json.为每个问题键入enter以回答默认值(为模块类型选择'globals').
Bower已准备好在您的项目中安装jQuery:
bower install --save jquery
Run Code Online (Sandbox Code Playgroud)
现在,您可以在模板中包含jQuery:
<script src="{{ asset('assets/vendor/jquery/dist/jquery.min.js') }}"></script>
Run Code Online (Sandbox Code Playgroud)
目前Bower没有像Composer那样的"锁定"功能.这就是为什么你应该提交Bower下载的资产,而不是将目录添加到.gitignore文件中.这可能在未来发生变化:凉亭/凉亭#1748.
即使Composer是PHP的依赖管理器,您也可以使用它来安装jQuery.
要使Composer能够安装组件/ jquery等组件,首先需要添加组件安装程序:
composer require robloach/component-installer
Run Code Online (Sandbox Code Playgroud)
然后修改您的composer.json文件以包含:
"require": {
"components/jquery": "3.1.1"
},
"config": {
"component-dir": "web/assets/vendor"
},
Run Code Online (Sandbox Code Playgroud)
并执行composer install.这将在web/assets/vendor目录中安装jQuery .
然后,您可以在模板中包含jQuery:
<script src="{{ asset('assets/vendor/jquery/jquery.min.js') }}"></script>
Run Code Online (Sandbox Code Playgroud)
例如,使用Google CDN:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
关于使用CDN的优缺点,建议您阅读本页.
为了确保你的脚本(需要jQuery)能够工作,必须首先加载jQuery.因此,根据您的页面加载要求,您应该:
<HEAD>,或