我假设这是一个简单的问题,但如果我能找到答案,我会很高兴.
我在Visual Studio 2008中有一个网站.样式表(和图像)的路径采用以下格式/css/stylesheetname.css
在Visual Studio中Web项目的根目录下,该文件夹与样式表一样存在.在IIS中运行它们时,这些路径可以正常工作.
如果我在Visual Studio中使用内置的Web服务器,则路径会失败,因为它将项目名放在路径中,即http:// localhost:2020/projectname/default.aspx
在这种情况下,/将路径直接返回到http:// localhost:2020
如果单击"设计",导入背景图像的样式都会失败,尽管样式表正确导入(因为样式表工作的所有其他方面,即.class{font-family:arial;}
工作但.class{background: url(/images/image.jpg)}
没有),这一点更加复杂.
我想这与Visual Studio如何计算网站的根路径有关,但我找不到改变它的设置.
有任何想法吗?? 更新:根据Egil Hansen的回答,我将CSS文件中的路径转换为相对路径.但是,背景图像仍然无法在设计模式下显示.我将在适当的时候看看使用Themes来解决这个问题.
我认为正确的解决方案是在样式表中使用相对URL而不是现在使用的绝对URL.
请注意,样式表中的相对URL相对于样式表的位置,而不是浏览器正在查看的当前页面.
如果您使用ASP.NET主题,则可以将所有网站图形放在一个/App_Themes/YourTheme/Images/
文件夹中,并将样式表放在该/App_Themes/YourTheme/
文件夹中.
在您的样式表中,您可以简单地引用图像url(Images/img.gif)
,它将在线和开发中工作.
您只需要将ASP.NET主题分配给您想要的页面,或者通过web.config的Pages部分(
)将主题分配给网站上的所有页面或通过<%@ Page ...每页的指令.
通常,您可以使用ASP.NET主题和皮肤做一些非常简洁的事情,只需在msdn.microsoft.com上查看ASP.NET主题和皮肤概述.
在ASP.NET中有一些需要注意的问题,请看看我的帖子如何使用StylePlaceHolder和Style控件控制ASP.NET主题中的样式表,这解释并解决了我遇到的问题到目前为止.