相关疑难解决方法(0)

MVC4 StyleBundle无法解析图像

我的问题与此类似:

ASP.NET MVC 4缩小和背景图像

除非我想坚持使用MVC自己的捆绑,如果可以的话.我正在脑力崩溃试图弄清楚用于指定样式包的正确模式是什么,例如jQuery UI工作的独立css和图像集.

我有一个典型的MVC站点结构,/Content/css/其中包含我的基本CSS,如styles.css.在该css文件夹中,我还有子文件夹,例如/jquery-ui包含其CSS文件和/images文件夹的子文件夹.jQuery UI CSS中的图像路径是相对于该文件夹的,我不想搞砸它们.

据我所知,当我指定一个StyleBundle我需要指定一个不匹配真实内容路径的虚拟路径时,因为(假设我忽略了到内容的路由),IIS将尝试将该路径解析为物理文件.所以我指的是:

bundles.Add(new StyleBundle("~/Content/styles/jquery-ui")
       .Include("~/Content/css/jquery-ui/*.css"));
Run Code Online (Sandbox Code Playgroud)

渲染使用:

@Styles.Render("~/Content/styles/jquery-ui")
Run Code Online (Sandbox Code Playgroud)

我可以看到要求:

http://localhost/MySite/Content/styles/jquery-ui?v=nL_6HPFtzoqrts9nwrtjq0VQFYnhMjY5EopXsK8cxmg1
Run Code Online (Sandbox Code Playgroud)

这将返回正确的,缩小的CSS响应.但随后浏览器发送相对链接图像的请求,如下所示:

http://localhost/MySite/Content/styles/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
Run Code Online (Sandbox Code Playgroud)

这是一个404.

我知道我的URL的最后一部分jquery-ui是一个无扩展名的URL,我的包的处理程序,所以我可以看到为什么相对的图像请求是简单的/styles/images/.

所以我的问题是处理这种情况的正确方法什么

css bundle jquery-ui asp.net-mvc-4 asp.net-optimization

288
推荐指数
9
解决办法
10万
查看次数

具有共享布局的ASP.NET MVC区域

我在我的ASP.NET MVC 3应用程序中定义了一个区域(Admin),_ViewStart.cshtml在该区域中创建并添加Layout = "~/Views/Shared/_Layout.cshtml";到该区域以具有统一的站点布局.

我还将以下代码添加到_Layout.cshtml:

if (HttpContext.Current.User.IsInRole("Admin"))
{
    <li>@Html.ActionLink("Items List", "Index", "Items", new { area = "Admin" }, null)</li>
}
Run Code Online (Sandbox Code Playgroud)

Admin区域_Layout.cshtml以其布局正确显示.但是页面中的所有导航链接现在都指向Admin子文件夹.

例如,在我的布局中,我<li>@Html.ActionLink("About Us", "About", "Home")</li>指出了Mysite/Home/About.但点击管理链接后,"关于我们"链接指向/Admin/Home/About.

如果让_Layout.cshtml链接指向正确的地址,我该怎么办?
谢谢.

asp.net-mvc-routing asp.net-mvc-areas asp.net-mvc-3

39
推荐指数
1
解决办法
2万
查看次数