代码之家  ›  专栏  ›  技术社区  ›  Tim

Visual Studio中样式表的相对路径在预览中不工作

  •  6
  • Tim  · 技术社区  · 17 年前

    我想这是个简单的问题,但如果我能找到答案的话,我会后悔的。

    我在visual studio 2008中有一个网站。样式表(和图像)的路径采用以下格式/css/stylesheetname.css

    在visual studio的web项目的根目录中,文件夹和样式表一样存在。在IIS中运行时,这些路径工作正常。

    如果我在visual studio中使用内置web服务器,则路径将失败,因为它将projectname放在路径中,即。 http://localhost:2020/projectname/default.aspx

    在这种情况下,/返回到 http://localhost:2020

    如果单击“设计”,则导入背景图像的样式都将失败,尽管样式表已正确导入(因为样式表工作的所有其他方面,即 .class{font-family:arial;} 作品但 .class{background: url(/images/image.jpg)} 不)。

    我想这一切都与visual studio如何计算网站的根路径有关,但是我找不到更改此设置的设置。

    有什么想法吗?? 更新: 根据egil hansen的回答,我将css文件中的路径转换为相对路径。但是,背景图像仍不在设计模式下显示。我会在适当的时候看看如何利用主题来解决这个问题。

    6 回复  |  直到 13 年前
        1
  •  5
  •   Community Mohan Dere    9 年前

    我认为正确的解决方案是在样式表中使用相对url,而不是现在使用的绝对url。

    请注意,样式表中的相对URL与样式表的位置有关,而不是与浏览器正在查看的当前页有关。

    如果使用ASP.NET主题,则可以将所有网站图形放在 /App_Themes/YourTheme/Images/ 文件夹,并将样式表放入 /App_Themes/YourTheme/ 文件夹。

    在样式表中,您只需使用 url(Images/img.gif) ,它将在网上和开发中都能工作。

    只需通过web.config的page s部分将ASP.NET主题分配给所需的页面即可。( <pages styleSheetTheme="Default"> )它将为网站上的所有页面或通过<%@页面分配主题…每页上都有指令。

    一般来说,您可以使用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 ,它解释并解决了我迄今遇到的问题。

        2
  •  1
  •   thp3l0    14 年前

    我一直在使用自定义图像文件夹为我的所有ASP.NET应用程序图形运行项目。虽然渐进vs ide中的app_主题和app_代码文件夹在这方面有了进步,但我仍然保留了我的文件夹,并且在服务器上部署时它没有消失。

    这么说吧-众所周知的文件夹将包含所有的垃圾箱、应用程序代码和主题,并通过这种方式引用它

    背景:url(../image/);

    当然上面的代码放在css文件中。它一直对我有用

        3
  •  1
  •   chilleo    13 年前

    不确定这是否适用于VS2008,但我使用的是VisualWebDeveloper2010,它对我有效:

    1)在解决方案资源管理器中单击项目

    2)它显示“虚拟路径”属性,默认为“/projectname”

    3)改为“/”,似乎能达到预期效果

    如果这对你有用就告诉我!

        4
  •  0
  •   Nailer    17 年前

    我在css中做任何事情已经很久了,但可能是url(./images/image.jpg) 会工作吗?

    编辑: 或者~/format/css/stylesheetname.css或./format/css/stylesheetname.css作为样式表的url。

        5
  •  0
  •   Robert    17 年前

    我也有同样的问题,这把我逼疯了。解决方案是添加一个apps_主题文件夹并将图像复制到其中。发布网站时,将保留文件夹结构并显示imnges。

        6
  •  0
  •   noboyband    17 年前

    我设置了css url图片的路径 代码{background:url(/images/xxx.jpg)不重复;} 在IIS上运行文件,因此必须将默认网站指向您的项目

    如何运行测试预览 类型: http://localhost/default.aspx

    这是服务器上运行的正确路径 包含文件js或css可以使用“/”根路径

    干杯 诺伯带