2010-05-06 66 views
4

目前,对于像背景图片这样的东西,我们的css文件没有指定域。这适用于我们的开发和生产环境。在css中更改图像域/路径以进行生产?

background-image: url(/images/bg.png); 

出于性能的考虑(cookie的域),我们想关掉这个:

background-image: url(http://staticimagedomain.com/images/bg.png); 

理想情况下,我们不硬编码的,所以我们的发展环境仍然可以拉动当地。

有关如何最好地实现这一点的任何想法?

+0

是这些静态文件,还是您使用服务器端脚本语言ASP或PHP生成它们? – 2010-05-06 18:32:46

回答

6

我会建议在无cookie的域中托管CSS文件,而不仅仅是图像。那么你将能够使用相对路径,这将在生产环境和其他任何环境中都可以使用。

如果您部署CSS文件到cookie的域名:

http://staticimagedomain.com/main.css 

然后你可以离开这个相对URL /images/bg.png,这将正常工作从两种环境。

无论如何,CSS文件并不需要cookies。

+1

啊,这是有道理的,图像将相对于CSS文件的域,而不是包含页面的域。 。 。 – Neil 2010-05-06 18:49:44

+0

是的,它工作正常。好奇的是:我正在检查一些示例来备份我的答案,并且检查了Stack Overflow,Amazon.com,Yahoo和You Tube的CSS,它们都使用无cookie的域。他们都将CSS文件托管在无Cookie域中,但是他们仍然使用完整的绝对URL来引用图像。 – 2010-05-06 18:55:01

+0

但是我也发现这是另一个来源:http://stackoverflow.com/questions/2488369/serving-css-from-a-static-domain – 2010-05-06 18:55:34

0

在主机文件中输入以将staticimagedomain.com重定向到localhost或您的测试页所服务的位置?

不是一个很好的解决方案,但快速和容易。

+0

好的解决方案,那也可以! – Neil 2010-05-06 18:50:14

0

要添加到其他明智的答案:有时有两个样式表,一个用于开发生产的样式表,只有一些区别(例如:一些背景颜色)可帮助识别实例并防止混淆。您的构建 - 部署脚本(Ant)将负责在进行生产时移动css文件。

如果你这样做(或者认为这样做会很好),那么你的问题有一个微不足道的答案。