2011-08-12 120 views
31

我有一个包含背景图像的样式表。CSS根目录

background: url(../Images/myImage.png); 

问题是,来自不同目录的页面使用此css!

我的CSS文件位于CSS文件夹中,Image文件夹中的图像以及我的html页面位于许多不同的文件夹中,具体取决于它们的内容和网站的含义。

我的所有页面都继承了这个CSS,因为它是MAIN主题。

上例中使用的路径是相对路径。显然,这条路径只适用于某些页面。我所需要的是链接从ROOT文件夹的CSS中的图像。因此,无论文件在文件夹结构中的哪个位置,每条路径都是正确的!

我曾尝试:

~/Images/myImage.png 
./Images/myImage.png 
/Images/myImage.png 
Images/myImages.png 

我不认为存在一个根文件夹选择......但我希望它:/

+0

只需每次使用绝对路径,即。 http://example.com/Images/myImage.png – benhowdle89

+2

不需要绝对路径,这不应该是***外部***样式表的问题,因为路径总是相对于样式表本身。您是直接将CSS代码放在''中吗? –

+0

@ benhowdle89不会,因为当您更改域名或将其置于子域名中时,所有内容都将被打破。我更喜欢'/ path'方法。 – jackJoe

回答

41
/Images/myImage.png 

这必须是在你的根站点/子

http://website.to/Images/myImage.png

,它会工作

不过,我认为它会像这样工作,也

  • 图像0​​
    • yourimage.png
  • 风格
    • 的style.css

的style.css:

body{ 
    background: url(../images/yourimage.png); 
} 
+0

这是否只适用于您的网站托管?我正在使用visual studio 2010在上传前调试我的网站。 –

+1

@ AlexMorley-Finch:我不知道。也许是 – genesis

+1

@ AlexMorley-Finch任何绝对方法只有在服务器上托管,而不是在* quick *文件预览(如在浏览器上预览文件)时才起作用。 – jackJoe

2

例如目录是这样的:

Desktop > 
     ProjectFolder > 
         index.html 
         css > 
          style.css 
         images > 
          img.png 

你是在你的style.css,并要使用img.png作为背景图像,使用这个:

url("../images/img.png") 

适合我!

0

在CSS所有你所要做的就是把url(logical path to the image file)

5

我使用相对路径解决方案,

./../../../../../images/img .png

每个../会带你一个文件夹向上。希望这可以帮助..

+0

我一直在寻找这个,它解决了我的问题!谢谢! – Dozer789

+3

使用更好/../ – Eike

+2

要小心,服务器安全规则可能会禁止一个过长的../../../序列 –

0

这个问题,“../”意味着加强(父文件夹)链接"../images/img.png"将无法​​正常工作,因为当您使用ajax像数据从服务器传递到网站。

你所要做的就是点图像的位置,“./”,那么第二个文件夹(在这种情况下,第二个文件夹是‘图像’)

url("./images/img.png") 

,如果你有这样的文件夹根

root -> content -> images

然后使用url("./content/images/img.png"),记住你的形象将在编辑器窗口中不可见,但是当它用ajax传递到浏览器就会显示。

3

点击here为好解释!

所有您需要了解相关的文件路径:

以“/”返回到根目录,并开始从那里开始

与“../”移动一个目录开始向后并从那里开始

用“../../”移动两个目录开始向后,并开始在那里(等等...)

要前进,只需从第一个子目录开始,并继续前进