Symfony2包含javascript文件

Symfony2 include javascript file

本文关键字:文件 javascript 包含 Symfony2      更新时间:2023-09-26

我是symfony的新手,我有一个困扰我几分钟的问题:我想在我的项目中包含一个JS文件,但它似乎不起作用(浏览器中没有发生任何事情,就像没有包含javascript一样)。我从控制台安装了资源,现在css,图像和JS文件存储在web/bundles目录中。在我看来,我写了:

{% javascripts %}
<script src = "http://code.jquery.com/jquery-2.1.3.min.js"></script>
<script src="{{ asset('bundles'emagmagazine'js'javascript.js') }}"></script>
{% endjavascripts %}  

我做错了什么?

按如下方式更改javascript

{% block javascripts %}
    {% javascripts 
        'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js', 
        '@emagmagazine/Resources/public/js/*' 
     %}
        <script src="{{ asset_url }}"></script>
    {% endjavascripts %}
{% endblock %}

这是正确的处理方法。

你忘记使用正确的块。
此外,通过这种方式,asset将处理(下载并提供)您在这里调用的外部js

我在模板中是这样做的:

{% javascripts "@asset_name_1" "@asset_name_2" %}
    <script src="{{ asset_url }}"></script>
{% endjavascripts %}

asset_name_X为资产配置中的资产名称。

执行命令:php app/console assets:install web ??

编辑:检查检查器或firebug是否加载了.js文件

试着指定脚本类型:

<script type="text/javascript" src="{{ asset('assets/plugins/jquery/jquery.min.js') }}"></script>

或者如果您使用的是规范,则将路径添加到base.html.twig中,并在twig中调用它:

{% block javascripts %}
{{ parent() }}
{% endblock %}

如下所示:http://symfony.com/doc/current/cookbook/assetic/asset_management.html#including-javascript-files

你只需要包括你的文件:

{% block javascripts %}
    {% javascripts '@EmagmagazineBundle/Resources/public/js/*' %}
        <script src="{{ asset_url }}"></script>
    {% endjavascripts %}
{% endblock %}

对于CDN文件,你能做的最好的就是通常包括:

<script src="//code.jquery.com/jquery-2.1.3.min.js"></script>

如果你插入CDN在你的{% javascripts %}它会工作,但你失去了CDN的效用是有一个共同的库在不同的网站