我有一个生产和开发服务器。 问题是目录结构。
发展:
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
属性的相同路径?我可以使用相对路径的技巧吗?
答案 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压缩器压缩它而不会丢失我的开发服务器上的原始格式。
祝你好运!