我在使用RequireJS加载网页时遇到问题,具体取决于页面的访问方式。
由于视图控制器的设置方式,可以通过以下链接访问网页
www.mydomain.com
正常工作www.mydomain.com/home
正常工作www.mydomain.com/home/
不起作用www.mydomain.com/home/index
不起作用www.mydomain.com/home/index/
不起作用如果从前两个链接访问网页,则RequireJS可以在www.mydomain.com/Scripts/main.js
如果使用3或4访问网页,那么我收到404文件未找到错误,而RequireJS正在www.mydomain.com/home/Scripts/main.js
如果使用5访问网页,那么它是相同的,但RequireJS正在www.mydomain.com/home/index/Scripts/main.js
有没有办法将RequireJS引导到正确的路径,无论页面如何访问,或者Asp.Net中是否有办法禁用路径3-5?
答案 0 :(得分:0)
我只需要更具体地定义我的baseUrl
。我有一个为require定义的配置指定了我所需模块的相对路径,但我也有一个相对baseUrl
导致了我的问题。我在解决所有路径时遇到问题,因为该网站将安装在各种根目录上,并具有不同的子应用程序或端点名称。我的解决方案最终是动态计算baseUrl
。
let port = document.location.port ? ':' + document.location.port : '';
//config is a custom object and endpoint name is the ASP.NET application name.
let endpointName = '//' + config.endpointName;
let root = document.location.protocol + '//' + document.location.hostname + port + endpointName;
var require = {
baseUrl: root,
paths: {
'module': '/Path/to/module',
...
}
};