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

标签 javascript asp.net url reference

我有一个 JavaScript 文件的 Web 应用程序将包含以下代码行:

var arrowimages = { down: ['downarrowclass', 'images/AppNavDownArrow.gif', 23], right: ['rightarrowclass', 'images/AppNavRightArrow.gif'] }

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

当我位于应用程序的子文件夹中时,如何修改代码以使其指向创建图像路径?

最佳答案

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

var arrowimages = { down: ['downarrowclass', '/images/AppNavDownArrow.gif', 23], right: ['rightarrowclass', '/images/AppNavRightArrow.gif'] }

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

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

对于可移植解决方案,您可能需要考虑使用配置参数来存储应用程序的根目录(例如 root = /myapp/ )。然后您可以在 config 中输出此参数JavaScript 中的对象为 explained in my other answer .您的网址将如下所示;

var arrowimages = { down: ['downarrowclass', config.base + '/images/AppNavDownArrow.gif', 23], right: [config.base + '/rightarrowclass', '/images/AppNavRightArrow.gif'] } 

关于javascript - 如何始终解析相对于我的 Web 应用程序根目录的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9621263/

相关文章:

JavaScript - 从字符串中删除 Minecraft 颜色代码

c# - 当 DB 值为 NULL 时将整数值显示为零的问题

c# - 嵌套 GridView - 如何触发子 GridView 按钮单击事件

javascript - Jersey 2 : render Swagger static content correctly without trailing slash(/)

javascript - dom 元素属性上的 cypress 选择器

javascript - 我的浏览器中的 Minifier js 导致变量已经被声明

c# - 我如何最好地重构此 C# 代码?

javascript - 在 AngularJS 中使用页面上 URL 的参数

web.xml 中网站基页的 url 模式

javascript - 在 React.js 中将 props 传递给父组件