Nat*_*ate 79 html javascript css asp.net-mvc path
所以我正在运行这个javascript,一切正常,除了背景图片的路径.它适用于我的本地ASP.NET Dev环境,但在部署到虚拟目录中的服务器时不起作用.
这是在外部.js文件中,文件夹结构是
Site/Content/style.css
Site/Scripts/myjsfile.js
Site/Images/filters_expand.jpg
Site/Images/filters_colapse.jpg
Run Code Online (Sandbox Code Playgroud)
那么这就是包含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')");
}
});
Run Code Online (Sandbox Code Playgroud)
我尝试过使用'/Images/filters_collapse.jpg',但也无效; 但是,如果我使用它似乎在服务器上工作'../../Images/filters_collapse.jpg'.
基本上,我想要与ASP.NET tilda具有相同的功能 - ~.
更新
外部.js文件中的路径是相对于它们所包含的页面还是.js文件的实际位置?
Jur*_*nka 131
在脚本中,路径相对于显示的页面
为了使事情变得更容易,你可以打印出这样一个简单的js声明,并在你的脚本中使用这个变量:
解决方案,在2010年2月左右在StackOverflow上使用:
<script type="text/javascript">
var imagePath = 'http://sstatic.net/so/img/';
</script>
Run Code Online (Sandbox Code Playgroud)
如果您在2010年左右访问此页面,您可以查看StackOverflow的html源代码,您可以在该<head />部分找到这个badass单行[格式化为3行:)]
小智 46
通过解析DOM引用它的'src'属性,在运行时使用jQuery获取javascript文件的位置:
var jsFileLocation = $('script[src*=example]').attr('src'); // the js file path
jsFileLocation = jsFileLocation.replace('example.js', ''); // the js folder path
Run Code Online (Sandbox Code Playgroud)
(假设您的javascript文件名为'example.js')
PHP*_*Pst 27
一个合适的解决方案是使用css类而不是在js文件中编写src.例如,而不是使用:
$(this).css("background", "url('../Images/filters_collapse.jpg')");
Run Code Online (Sandbox Code Playgroud)
使用:
$(this).addClass("xxx");
Run Code Online (Sandbox Code Playgroud)
并在页面中加载的css文件中写入:
.xxx {
background-image:url('../Images/filters_collapse.jpg');
}
Run Code Online (Sandbox Code Playgroud)
Pek*_*ica 13
好问题.
在CSS文件中,URL将相对于CSS文件.
使用JavaScript编写属性时,URL应始终相对于页面(请求的主要资源).
tilde我所知道的JS中没有内置的功能.通常的方法是定义一个指定基本路径的JavaScript变量:
<script type="text/javascript">
directory_root = "http://www.example.com/resources";
</script>
Run Code Online (Sandbox Code Playgroud)
并在动态分配URL时引用该根.
小智 5
对于我正在处理的MVC4应用程序,我在_Layout.cshtml中放置了一个脚本元素,并为所需的路径创建了一个全局变量,如下所示:
<body>
<script>
var templatesPath = "@Url.Content("~/Templates/")";
</script>
<div class="page">
<div id="header">
<span id="title">
</span>
</div>
<div id="main">
@RenderBody()
</div>
<div id="footer">
<span></span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
259951 次 |
| 最近记录: |