我正在尝试在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(未找到)
答案 0 :(得分:2)
添加到@dgabriel响应。您可以使用切片过滤器
来完成<script
data-main="{{ asset('bundles/web/js/main.js') | slice(0, -3) }}"
src="{{ asset('vendor/js/require.js') }}">
</script>
答案 1 :(得分:1)
请务必从资源中删除“.js”文件扩展名。它应该是 data-main =“{{asset('bundles / web / js / main')}}”
确保您的文件路径正确无误。
确保main.js中没有javascript错误
答案 2 :(得分:0)
404看起来好像是因为你的应用程序中的其他地方需要'main'而导致它 - 它与你的数据主路径中的路径不匹配。在这种情况下,它很可能是您的baseUrl或路径配置的问题(两者都是告诉RequireJS模块所在位置的不同方法)。在您的示例中,您的baseUrl需要是'/ ~myName / myProject / web / bundles / web / js'。
您可能想尝试使用https://github.com/hearsayit/HearsayRequireJSBundle。它会自动为您处理这些配置细节,并与Assetic很好地集成。