我的requirejs设置有问题,我试图修复它,但每次我打破应用程序。这是我的index.html
<script type="text/javascript" src="/js/bower_components/requirejs/require.js"></script>
<script>
// obtain requirejs config
require(['require', 'js/require-config'], function (require, config) {
// update global require config
window.require.config(config);
// load app
require(['main']);
});
</script>
如果我从根路径“/”加载应用程序,这很有效但是当我尝试在其他地方刷新应用程序时(例如./user / 1)我收到以下错误:
资源被解释为脚本,但使用MIME类型text / html传输:“http://domain.local/users/js/require-config.js”。
require.js:1895 Uncaught SyntaxError:意外的令牌&lt;
require-config.js:1资源被解释为脚本但使用MIME类型text / html传输:“http://domain.local/users/main.js”。
require.js:1895 Uncaught SyntaxError:意外的令牌&lt;
你可以看到它在相对路径上寻找文件:
http://domain.local/users/js/require-config.js
但它应该加载:
http://domain.local/js/require-config.js
如果我在模块前添加/
,那么它就不再工作了,因为它正在寻找文件而不是模块:
<script type="text/javascript" src="/js/bower_components/requirejs/require.js"></script>
<script>
// obtain requirejs config
require(['require', '/js/require-config'], function (require, config) {
// update global require config
window.require.config(config);
// load app
require(['/js/main']);
});
</script>
资源解释为脚本,但使用MIME类型text / html传输:“http://domain.local/js/require-config”。 require.js:1895
未捕获的SyntaxError:意外的令牌&lt; require-config:1资源被解释为脚本但使用MIME类型text / html传输:
“http://domain.local/js/main”。 require.js:1895 Uncaught SyntaxError: 意外的标记&lt;
我尝试了几个组合,但每次都破坏了一些东西:(
非常感谢帮助;)
答案 0 :(得分:5)
如果您的路径以&#34; /&#34;开头,请添加.js扩展名。
<script type="text/javascript" src="/js/bower_components/requirejs/require.js"></script>
<script>
// obtain requirejs config
require(['require', '/js/require-config.js'], function (require, config) {
// update global require config
window.require.config(config);
// load app
require(['/js/main.js']);
});
</script>
index.html:
<script data-main="/js/require.file.js" src="/js/bower_components/requirejs/require.js"></script>
require.file.js:
require.config({ // Your config :
baseUrl: "/js"
});
require(["main"],
function(someModule, myModule) {
//onload.
}
);
答案 1 :(得分:0)
有类似的问题。只需检查您是否不要求具有扩展名的文件,如下所示:
require.config({
paths: {
jqueryui: 'js/vendor/jquery.ui.widget.js'
}
})
只需从文件名中删除 .js 部分:
require.config({
paths: {
jqueryui: 'js/vendor/jquery.ui.widget'
}
})
为什么会出现问题?因为我在我的后端使用的框架为其自己的404页面提供了服务,所以我总是看到完全生成的,有效的HTML页面而不是服务器的404响应。