所以我正在运行这个 javascript,一切正常,除了背景图像的路径。它适用于我的本地 ASP.NET 开发环境,但在部署到虚拟目录中的服务器时不起作用。
这是一个外部.js文件,文件夹结构是
Site/Content/style.css
Site/Scripts/myjsfile.js
Site/Images/filters_expand.jpg
Site/Images/filters_colapse.jpg
那么这是包含js文件的地方
Site/Views/ProductList/Index.aspx
$("#toggle").click(function() {
if (left.width() > 0) {
AnimateNav(left, right, 0);
$(this).css("background", "url('../Images/filters_expand.jpg')");
}
else {
AnimateNav(left, right, 170);
$(this).css("background", "url('../Images/filters_collapse.jpg')");
}
});
我试过使用 '/Images/filters_collapse.jpg'
但这也不起作用;但是,如果我使用 '../../Images/filters_collapse.jpg'
,它似乎可以在服务器上运行。
基本上,我希望具有与 ASP.NET tilda 相同的功能 -- ~
。
更新
外部 .js 文件中的路径是相对于它们所在页面的路径,还是 .js 文件的实际位置?
最佳答案
JavaScript 文件路径
在脚本中,路径与显示页面相关
为了让事情更简单,你可以打印出一个像这样的简单的 js 声明,并在你的脚本中使用这个变量:
解决方案,2010 年 2 月左右在 StackOverflow 上使用:
<script type="text/javascript">
var imagePath = 'http://sstatic.net/so/img/';
</script>
如果您在 2010 年左右访问此页面,您可以看看 StackOverflow 的 html 源代码,您可以在 <head />
中找到这个 badass one-liner [格式为 3 行:)]节
关于javascript - 外部文件中 Javascript 中的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2188218/