如何始终解析相对于我的Web应用程序根目录的URL?

Mic*_*ern 1 javascript asp.net url reference

我有一个Web应用程序,它是一个JavaScript文件,代码如下:

var arrowimages = { down: ['downarrowclass', 'images/AppNavDownArrow.gif', 23], right: ['rightarrowclass', 'images/AppNavRightArrow.gif'] }
Run Code Online (Sandbox Code Playgroud)

当我在我的Web应用程序的根目录时,对图像的引用按预期工作.当我浏览到我的应用程序中的子文件夹时,它会将相同的子文件夹添加到图像URL并且不加载.

如何在我的应用程序中的子文件夹中修改代码以便指向创建图像路径?

Mat*_*att 10

你应该用a引导路径/.这样,路径将始终从域根解析.

var arrowimages = { down: ['downarrowclass', '/images/AppNavDownArrow.gif', 23], right: ['rightarrowclass', '/images/AppNavRightArrow.gif'] }
Run Code Online (Sandbox Code Playgroud)

否则,它们将对于当前 URL 解析; 通过将路径添加到当前文件夹的末尾(除非您使用<base/ >标记(如果使用,请删除它)).

如果您的app位于子文件夹(例如http://example.com/myapp)中,那么您需要在路径前加上myapp; /myapp/images/AppNavDownArrow.gif.

对于便携式解决方案,您可能需要考虑使用配置参数来存储应用程序的根目录(例如root = /myapp/).然后,您可以config在JavaScript 中的对象中输出此参数,如我的其他答案中所述.您的网址将如下所示;

var arrowimages = { down: ['downarrowclass', config.base + '/images/AppNavDownArrow.gif', 23], right: [config.base + '/rightarrowclass', '/images/AppNavRightArrow.gif'] } 
Run Code Online (Sandbox Code Playgroud)