我们有一个使用子域的MVC站点。不在传统的sub.domain.com中,而是使用domain.com/sub。源文件都存在于每个子域的子文件夹中,因为每个子域可能有一些略有不同的东西。这导致开发团队必须将JS直接放入剃刀页面,以便剃刀代码能够更新如下的URL。
var temp = $('div').load('@Url.Content("~/Images/Excel.png")');
不幸的是,在单独的JS文件中使用如下代码尝试从domain.com而不是domain.com/sub
加载var temp = $('div').load('/Content/Templates/warning.html');
这些论坛会添加到域中,并可以随客户端进行更改。有没有办法在文件加载时像JS中的那样加载域加上sub而不需要将代码放入剃刀?我更喜欢分离关注点,因为我们正在加载有时因为它而无法使用的脚本。
答案 0 :(得分:1)
在类似的情况下我总是做的是我在main.js
中创建一个函数或者你用于共享js文件的任何名称,修改函数中的URL并使用函数作为启动器: / p>
main.js
中的
:
var loadFile = function(selector,path){
$(selector).load('/sub'+path);
}
然后随时随地加载文件:
var temp = loadFile('div','/Content/Templates/warning.html');
<强>更新强>
您可以升级loadFile
功能,让它知道是否必须从网站的根目录加载,如果需要:
var loadFile = function(selector,path,loadFromRoot){
var root=(loadFromRoot) ? '' : '/sub';
$(selector).load(root+path);
}