html - Visual Studio 中样式表的相对路径在预览中不起作用

标签 html css visual-studio visual-studio-2008

我假设这是一个简单的问题,但如果我能找到答案,我会很高兴。

我在 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/

相关文章:

html - 带有水平子菜单的纯 HTML/CSS 菜单。如何保持父级 'a'背景颜色?

jquery - 革命性的 slider 在较小的屏幕上固定高度

html - 文件超过100vh出现Horizo​​ntal Overflow

javascript - 从javascript中断在Razor View中调用data-url-action

javascript - 如果单击内部的复选框,则防止默认 anchor 行为

javascript - 当用户刷新网页时阻止表单提交

css - 如何在 css 中调整图像大小以保持比例(并被裁剪)?

html - 如何在不使用任何框架的情况下为导航菜单制作响应式 "Burger Icon"?

c# - 打开第二个表格,右下一个第一个表格

visual-studio - Windows 窗体的窗体和文本框的 Dispose 方法的行为差异