我假设这是一个简单的问题,但如果我能找到答案,我会很高兴。
我在 Visual Studio 2008 中有一个网站。样式表(和图像)的路径格式如下/css/stylesheetname.css
在 Visual Studio 中的 Web 元素的根目录中,该文件夹与样式表一样存在。这些路径在 IIS 中运行时运行良好。
如果我在 Visual Studio 中使用内置网络服务器,路径会失败,因为它将元素名称放在路径中,即 http://localhost:2020/projectname/default.aspx
在这种情况下,/将路径直接返回到 http://localhost:2020
如果您单击“设计”,尽管样式表已正确导入,但导入背景图像的样式都会失败(因为样式表的所有其他方面都有效,即 .class{font-family :arial;}
有效,但 .class{background: url(/images/image.jpg)}
无效。
我猜这与 Visual Studio 如何计算网站的根路径有关,但是我找不到更改此设置的设置。
有什么想法吗? 更新:根据 Egil Hansen 的回答,我将 CSS 文件中的路径转换为相对路径。但是,背景图像仍然不会在设计模式下显示。我会在适当的时候看看使用主题来解决这个问题。
最佳答案
我认为正确的解决方案是在样式表中使用相对 URL 而不是您现在使用的绝对 URL。
请注意,样式表中的相对 URL 是相对于样式表的位置,而不是浏览器正在查看的当前页面。
如果您使用 ASP.NET 主题,您可以将所有网站图片放在 /App_Themes/YourTheme/Images/
中文件夹,并将样式表放入 /App_Themes/YourTheme/
文件夹。
在您的样式表中,您可以使用 url(Images/img.gif)
简单地引用图像, 它将在线和开发中工作。
您只需将 ASP.NET 主题分配给您想要的页面,通过 web.config 的页面部分 ( <pages styleSheetTheme="Default">
) 将主题分配给网站上的所有页面或通过 < %@ Page ... 每个页面上的指令。
一般来说,您可以使用 ASP.NET 主题和皮肤做一些非常巧妙的事情,只需看看 ASP.NET Themes and Skins Overview在 msdn.microsoft.com 上。
在 ASP.NET 中使用主题有几个问题需要注意,请查看我的帖子 How to take control of style sheets in ASP.NET Themes with the StylePlaceHolder and Style control ,它解释并解决了我目前遇到的问题。
关于html - Visual Studio 中样式表的相对路径在预览中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/362445/