当文件是比域更深的文件夹时,使用JS访问文件

时间:2016-08-11 12:16:14

标签: javascript asp.net-mvc razor

我们有一个使用子域的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而不需要将代码放入剃刀?我更喜欢分离关注点,因为我们正在加载有时因为它而无法使用的脚本。

1 个答案:

答案 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);
}