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


Symfony2: How to include a js file inside another js?

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

然而,intl-tel输入插件需要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. 
});

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

Twig的include用于INCLUDE文件内容,因此您需要使用asset函数:

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