Symfony2:如何在另一个js中包含一个js文件?

时间:2015-11-20 11:14:22

标签: javascript php jquery symfony

我在Symfony项目中使用intl-tel-input插件。我们目前正在组合Assets,以便将所有js脚本文件加载到一个。

然而,intl-tel-input插件需要utils.js才能启用格式化/验证等,并且需要将其包含在脚本中,如下所示:

utilsScript: "/Resources/js/vendors/utils.js"

但是,如果我使用它,我会收到404错误(找不到文件utils.js)。

如何在脚本上加载该文件?

这是我的完整脚本:

$(".js-phone").intlTelInput({
    autoFormat: false,
    autoHideDialCode: false,
    autoPlaceholder: true,
    defaultCountry: "auto",
    geoIpLookup: function(callback) {
      $.get('http://ipinfo.io', function() {}, "jsonp").always(function(resp) {
        var countryCode = (resp && resp.country) ? resp.country : "";
        callback(countryCode);
      });2
    },
    nationalMode: false,
    utilsScript: "{{ include('/Resources/js/vendors/utils.js') }}" // utils.js enables formatting/validation etc. 
});

1 个答案:

答案 0 :(得分:1)

根据您提供的文档utilsScript需要js文件的路径。您不能只使用/Resources/js/vendors/utils.js,因为Resources不是公共目录。

Twig的include意味着包含文件内容,因此您需要使用的是asset函数:

$(".js-phone").intlTelInput({
    (..)
    utilsScript: "{{ asset('bundles/yourbundle/js/vendors/utils.js') }}" 
});