我正在尝试使用jQuery.backstretch在ASP.NET MVC视图中呈现背景图像:
$.backstretch("~/Content/img/bug.jpg", { speed: 500 });
但是,调试中的GET请求返回404,因为Chrome将我的应用程序URL路由模式附加到文件路径,如下所示:
[localhost]/[ControllerName]/~/Content/img/bug.jpg
在使用ASP.NET MVC应用程序时,在将文件路径作为JS函数中的参数传递之前,我从未遇到此问题。有什么建议吗?
答案 0 :(得分:1)
使用" /"
使用相对路径/RootDirectory/Cotent/img/bug.jpg
如果Cotent文件夹位于RootDirectory中,请使用以下
/Cotent/img/bug.jpg
答案 1 :(得分:1)
在C#中,相对根路径可以用“〜/”引用。这告诉Web应用程序您要查找的项目的目录是相对于项目的根目录而不是当前视图。
例如,如果您在资源/ Home / Index,并添加内容@ Url.Content(“img / my_image.png”),那么请求将发送到“/ Home / Index / img / my_image.png“。但是,这可能不是您保留图像的位置,而是您可能在目录的根目录中(或者在MVC世界中的Content文件夹中)有一个图像文件夹。所以,你更有可能想要@ Url.Content(“〜/ img / my_image.png”)。
但是,“〜”字符并不普遍表示相对根路径。如果向链接添加“〜/”,浏览器会将代字号解释为目录,并且由于链接不包含根路径符号(“/”),因此broswer将创建相对于当前目录的链接。这会产生“/〜/ ...”的路径,这很可能不存在。
简而言之,无论何时在HTML / JavaScript中创建相对链接,请确保省略“〜”字符,这应该可以解决您的问题。