2008-12-12 65 views
6

我假设这是一个简单的问题,但如果我能找到答案,我就会受到影响。Visual Studio中样式表的相对路径在预览中不起作用

我在Visual Studio 2008的网站样式表(和图像)的路径是按以下格式/css/stylesheetname.css

在Web项目的Visual Studio中的根文件夹是否存在样式表也一样。这些路径在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文件中的路径转换为相对路径。但是,背景图像仍然不会在设计模式下显示。我会在适当的时候看看使用主题来解决这个问题。

回答

0

它已经过了年龄,因为我在css中做了任何事情,但也许URL(./ images/image.jpg) 将工作?

编辑: 或者〜/ format /css/stylesheetname.css或./format /css/stylesheetname.css作为样式表的网址。

5

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

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

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

在你的样式表中,你可以简单地引用一个图片url(Images/img.gif),它可以在线和开发。

你只需要通过web.config的页面部分(<pages styleSheetTheme="Default">)将你的ASP.NET主题分配给你想要的页面,该页面将为网站上的所有页面分配一个主题,或者通过<% @ Page ...指令在每个页面上。

一般来说,您可以使用ASP.NET主题和皮肤做一些非常整洁的事情,只需看看msdn.microsoft.com上的ASP.NET Themes and Skins Overview即可。

在ASP.NET中有几个需要注意的主题,看看我的帖子How to take control of style sheets in ASP.NET Themes with the StylePlaceHolder and Style control,它解释并解决了我到目前为止遇到的问题。

0

我有同样的问题,它让我疯狂。解决方案是添加一个Apps_Theme文件夹并将图像复制到那里。当您发布该网站时,文件夹结构将被保留并显示相应的问题。

0

我已经设置路径的css url图像 code {background:url(/images/xxx.jpg)no-repeat; } 和运行IIS的文件,因此必须对默认网站指向你的项目

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

这是在服务器 正确的路径相同的运行包括文件的JS和CSS可以 Noboyband

1

我一直在使用自定义映像文件夹为我所有的图形ASP.Net应用程序运行的项目中使用“/”根路径

欢呼。虽然在这方面已经有进步VS IDE中可用的App_Theme和App_Code文件夹;我仍然保留我的文件夹,并且在服务器上部署它时还没有失望。

因此,既然说 - 众所周知的文件夹将与所有的垃圾桶,App_Code文件和_themes和参考它坐在通过这种方法制成

背景:网址(../图像/ ..);

当然上面的代码坐在CSS文件中。它为我所有的时间

1

不知道这是否适用于2008年VS与否,但使用的Visual Web Developer 2010 IM和它的工作对我来说:

1)点击在Solution Explorer

项目

2)它显示其默认为“/项目名”

3)“虚拟路径”属性更改为“/”,而不是它似乎做什么需要

让我知道如果这对你有用!