我正在将MVC与.NET配合使用。
Requirejs在我的应用程序主页上正常加载(URL为http://localhost:62124
),我添加了一个按钮来将用户重定向到具有表单的另一个页面。重定向后的网址为http://localhost:62124/Users/RedirectToSignUp
我在控制台中收到这些错误消息
http://localhost:62124/Users/Scripts/main.js net::ERR_ABORTED 404 (Not Found)
Uncaught Error: Script error for "main"
https://requirejs.org/docs/errors.html#scripterror
at makeError (require.js:5)
at HTMLScriptElement.onScriptError (require.js:5)
这是我的脚本目录结构
Scripts
|----Custom
|----|---- login.js
|----|---- signup.js
Bootstrap.min.js
jquery-3.3.1.js
jquery.validate.min.js
jquery.validate.unobtrusive.min.js
knockout-3.4.2.js
main.js
modernizer-2.8.3.js
require.js
登录页面(即主页)将加载所有正确的脚本。此页面上的requirejs的路径是/ Scripts / requirejs。但是,在另一页上,它试图在Users/Scripts/main.js
下找到不存在的main.js。
这是我的main.js的样子
requirejs.config({
baseUrl: '/Scripts',
paths: {
'jquery': 'jquery-3.3.1.min',
'jquery.validate': 'jquery.validate.min',
'jquery.validate.unobtrusive': 'jquery.validate.unobtrusive.min',
'knockout': 'knockout-3.4.2',
'login': 'Custom/login',
'signup': 'Custom/signup'
},
shim: {
'jquery.validate': ['jquery'],
'jquery.validate.unobtrusive': ['jquery', 'jquery.validate']
}
});
var base = {}
base.init = function () {
if (applicationConfig.login) {
require(['login']);
}
if (applicationConfig.signup) {
require(['signup']);
}
}
base.init();
即使重定向后,如何正确加载requirejs和main.js?
编辑:
这是我将main.js加载到_Layout.cshtml中的方式
<script data-main="Scripts/main" src="~/Scripts/require.js"></script>
答案 0 :(得分:0)
我能够通过更改
来解决此问题<script data-main="Scripts/main" src="~/Scripts/require.js"></script>
到
<script data-main="/Scripts/main" src="~/Scripts/require.js"></script>