Asp.net mvc 2 Can';t在ASP.NET MVC 2中对区域使用相对路径
在我的应用程序中,我有一个区域呼叫手机。在这个区域中,我有一个文件夹调用资产,我们在其中放置所有css、javascript和图像 访问视图效果很好 问题是当我访问css、javascript和图像时 在我看来,我不能做这样的事Asp.net mvc 2 Can';t在ASP.NET MVC 2中对区域使用相对路径,asp.net-mvc-2,Asp.net Mvc 2,在我的应用程序中,我有一个区域呼叫手机。在这个区域中,我有一个文件夹调用资产,我们在其中放置所有css、javascript和图像 访问视图效果很好 问题是当我访问css、javascript和图像时 在我看来,我不能做这样的事 <img src="Assets/css/styles.css" /> 原因是真正的url是: 是否有一种方法可以映射到静态文件 谢谢, Randall您可能需要这样做: <img src="../../Mobile/Assets/css/sty
<img src="Assets/css/styles.css" />
原因是真正的url是:
是否有一种方法可以映射到静态文件
谢谢,
Randall您可能需要这样做:
<img src="../../Mobile/Assets/css/styles.css" />
…取决于当前目录的实际位置。您也可以尝试以下方法:
<img src="~Mobile/Assets/css/styles.css" />
找出实际路径的一个好方法是将资源(在本例中为styles.css)从Project Explorer拖到视图中,然后让Visual Studio为您创建路径。您可能需要执行以下操作:
<img src="../../Mobile/Assets/css/styles.css" />
…取决于当前目录的实际位置。您也可以尝试以下方法:
<img src="~Mobile/Assets/css/styles.css" />
找出实际路径的一个好方法是将资源(在本例中为styles.css)从Project Explorer拖到您的视图中,然后让Visual Studio为您创建路径。我提出的解决方案是使用一个简单的IHTTP模块,它将为我重写URL。下面是我为BeginRequest事件实现的方法
void BeginRequest(object sender, EventArgs e)
{
var context = HttpContext.Current;
var path = context.Request.Path;
// Add Areas to the Mobile path, so we don't have to specify it manually.
// This is mainly for handling static resources that you place in areas.
if (!path.Contains("Mobile/")) return;
if (path.EndsWith(".png") ||
path.EndsWith(".gif") ||
path.EndsWith(".css") ||
path.EndsWith(".js") ||
path.EndsWith(".htm") ||
path.EndsWith(".cache"))
context.RewritePath(path.Replace("Mobile/", "Areas/Mobile/"));
}
我提出的解决方案是使用一个简单的IHTTP模块,它可以为我重写URL。下面是我为BeginRequest事件实现的方法
void BeginRequest(object sender, EventArgs e)
{
var context = HttpContext.Current;
var path = context.Request.Path;
// Add Areas to the Mobile path, so we don't have to specify it manually.
// This is mainly for handling static resources that you place in areas.
if (!path.Contains("Mobile/")) return;
if (path.EndsWith(".png") ||
path.EndsWith(".gif") ||
path.EndsWith(".css") ||
path.EndsWith(".js") ||
path.EndsWith(".htm") ||
path.EndsWith(".cache"))
context.RewritePath(path.Replace("Mobile/", "Areas/Mobile/"));
}