如何使用Assetic为requireJs(How to Use Assetic for requi

2019-09-17 03:33发布

我想在synfony2项目中使用require.js。

在这里,在主树枝文件的代码:

<script 
        data-main="{{ asset('bundles/web/js/main.js') }}" 
        src="{{ asset('vendor/js/require.js') }}">
</script>

该文件vendor/js/require.js正确加载,但该文件bundles/web/js/main.js我得到的消息:

未捕获的错误:模块加载超时:mainApp.js 201205021855 http://requirejs.org/docs/errors.html#timeout

我使用RequireJS 1.0.8。 任何想法如何解决这一问题? 谢谢。


如果我看源页,它看起来像:

<script 
      data-main="/~myName/myProject/web/bundles/web/js/main.js?101205021855"       
      src="/~myName/myProject/web/vendor/js/require.js?101205021855">
</script>

因此,路径是权利,但在JavaScript控制台我得到以下信息:

GET http://localhost/~myName/myProject/web/app_dev.php/main.js?201205021855 404(未找到)

Answer 1:

添加到@dgabriel响应。 你可以用切片过滤器做到这一点,

<script 
        data-main="{{ asset('bundles/web/js/main.js') | slice(0, -3) }}" 
        src="{{ asset('vendor/js/require.js') }}">
</script>


Answer 2:

  1. 确保从你的资产离开关”的.js'文件扩展名。 它应该是数据主= “{{资产( '束/网络/ JS /主')}}”

  2. 确保您的文件路径是正确的。

  3. 确保有在main.js没有JavaScript错误



Answer 3:

这404看起来像它的到来作为的结果“主”被要求其他地方在您的应用程序 - 它不匹配您的数据的主要路径。 在这种情况下,它是最有可能与您的baseUrl或路径的问题CONFIG(这两者都是不同的方式来告诉RequireJS您的模块位于)。 在你的榜样,你的baseUrl将需要 '/〜MYNAME / myProject的/ WEB /包/网络/ JS'。

您可能需要使用尝试https://github.com/hearsayit/HearsayRequireJSBundle 。 它会自动处理这些配置的详细信息给你,并与Assetic很好地集成。



文章来源: How to Use Assetic for requireJs