我有一个MVC4项目,它具有以下结构:
/Content/css/sprites/topbar.css
/Content/images/topbar.png
background: url('../../images/topbar.png')
但图像不显示.如果我更改它,以便图像位于:
/Content/css/sprites/topbar.png
并将css更改为:
background: url('content/css/sprites/topbar.png')
它有效,但这打破了我的项目结构.
有任何想法吗?
编辑
我没有提到别的东西,因为我认为它不相关,但它似乎影响了这一点!
我使用@System.Web.Optimization.Styles.Render(“〜/ MainStyles”)来捆绑和缩小css,但如果我采取了这一步,那么它就像我期望的那样工作.如何使用我的项目结构并使用捆绑功能?
解决方法
不知道是否有其他人遇到这个问题.但是你可以在你的CSS中使用相对路径.关键是使用虚拟路径注册捆绑包到您的实际css所在的同一文件夹.这样MVC将从该路径中的处理程序请求捆绑的css.
尝试将您的捆绑注册更改为:
bundles.Add(new StyleBundle("~/Content/css/sprites/topbar") .Include("~/Content/css/sprites/topbar.css") );
然后在你的视图@ Script.Render(“/ Content / css / sprites / topbar”)
Mvc会从/ Content / css / sprites / topbar请求你编译的css包吗?{some-crazy-token-thing}