如何在css URL中使用相对/绝对路径?

时间:2011-04-28 07:57:55

标签: css relative-path absolute-path

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

发展:

  • http://dev.com/subdir/images/image.jpg
  • http://dev.com/subdir/resources/css/style.css

生产:

  • http://live.com/images/image.jpg
  • http://live.com/resources/css/style.css

如何在style.css文件夹中css在两个服务器上使用background: url属性的相同路径?我可以使用相对路径的技巧吗?

3 个答案:

答案 0 :(得分:114)

网址为relative to the location of the CSS file,因此这适用于您:

url('../../images/image.jpg')

相对url返回两个文件夹,然后返回images文件夹 - 只要结构相同,它就适用于这两种情况。

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

  

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

答案 1 :(得分:7)

就个人而言,我会在.htaccess文件中修复此问题。您应该可以访问它。

定义您的CSS网址:

url(/image_dir/image.png);

在你的.htacess文件中,输入:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^image_dir/(.*) subdir/images/$1

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

取决于网站。

答案 2 :(得分:2)

我有同样的问题...每次我想发布我的CSS ...我不得不进行搜索/替换..并且相对路径对我来说也不会有用,因为相对路径不同于开发到生产

最后厌倦了进行搜索/替换,我创建了一个动态css,(例如www.mysite.com/css.php)它是一样的但现在我可以在css中使用我的php常量。像是

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

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

祝你好运!