最佳答案
我的问题与此类似:
除了我想坚持MVC自己的捆绑如果我可以的话。我有一个大脑崩溃试图找出什么是正确的模式是指定样式包,如独立的css和图像集,如jQuery UI工作。
我有一个典型的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"));
呈现的使用:
@Styles.Render("~/Content/styles/jquery-ui")
我可以看到请求发送到:
http://localhost/MySite/Content/styles/jquery-ui?v=nL_6HPFtzoqrts9nwrtjq0VQFYnhMjY5EopXsK8cxmg1
返回正确的,最小化的CSS响应。 但随后浏览器会发送一个相对链接图像的请求:
http://localhost/MySite/Content/styles/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
它是404
。
我知道我的URL jquery-ui
的最后一部分是一个无扩展的URL,是我的包的处理程序,所以我可以看到为什么对图像的相对请求只是/styles/images/
。
所以我的问题是处理这种情况的正确的方法是什么 ?