在更新我的CSS之前,我在Login.css中有以下内容:
body
{
background-image: url('./pictures/fond.png');
background-repeat: repeat-x;
}
这是我的结构:
现在我有以下css:
body
{
background-image: url('../pictures/fond.png');
background-repeat: repeat-x;
}
请注意网址中的双重点。
这是我的新结构:
我的问题:在我的IIS测试服务器上发布时,我看不到我的照片!?在本地开发机器(VS2012)上,我可以看到我的照片。
但是如果我更新位于我的IIS测试服务器中的Login.css并用一个点替换我的双点它再次起作用。这不是逻辑,因为(在我更新之后)Login.css现在位于css文件夹下。
有什么想法吗?
感谢。
更新----------------
这是我引用我的CSS的方式:
bundles.Add(new StyleBundle("~/Content/bundleLogin").Include(
"~/Content/css/bootstrap.css",
"~/Content/css/Login.css"));
我创建了一个包然后:
@Styles.Render("~/Content/bundleLogin")
答案 0 :(得分:0)
我敢打赌你已经在视图中硬编码了你的CSS文件的路径,就像那样:
<link href="Content/css/Login.css" rel="stylesheet" type="text/css" />
而不是正确的方式,当然是使用网址助手:
<link href="@Url.Content("~/Content/css/Login.css")" rel="stylesheet" type="text/css" />
就您的CSS文件而言,您在那里引用的所有网址(例如图像)始终相对于CSS文件的当前位置。因此,如果您正确引用CSS文件,则不会有任何问题。使用url('../pictures/fond.png');
是正确的相对位置。
更新:
哦,我看到了问题。您正在使用捆绑包。那么,bundle的问题在于你声明bundle名称的方式,你没有与物理结构相同级别的文件夹嵌套。所以修改你的包就像这样:
bundles.Add(new StyleBundle("~/Content/css/bundleLogin").Include(
"~/Content/css/bootstrap.css",
"~/Content/css/Login.css"));
然后:
@Styles.Render("~/Content/css/bundleLogin")