【问题标题】:Making css image absolute paths goto the root of a sub directory, not the root of the main domain使css图像绝对路径转到子目录的根目录,而不是主域的根目录
【发布时间】:2011-12-02 14:06:05
【问题描述】:

我在一个开发域上为客户设置了多个站点。所以结构看起来是这样的:

developmentdomain.com/client1/site

developmentdomain.com/client2/site developmentdomain.com/client/anothersite

如果我在 html 中有一个基本 ref 并在我的 htaccess 文件中添加一个 RewriteBase 规则,那么一切都可以正常工作。

但是对于一些如果在我的 css 中:

background: url("/assets/images/someImage.png");

它试图在这个位置找到图像: developmentdomain.com/assets/images/someImage.png

当它需要查看时: developmentdomain.com/client1/site/assets/images/someImage.png

我猜我需要在 htacess 中做一个重写规则,但是什么?

哦,这就是我的 RewriteBase 的 htacces 文件中的内容

RewriteEngine On
RewriteBase /client1/site

非常感谢任何帮助。

谢谢 本

【问题讨论】:

  • 我希望我的开发站点与生产站点相同,因此我使用子域而不是文件夹来隔离项目。

标签: css .htaccess subdirectory


【解决方案1】:

无需重写规则。您只需要使用相对 url 而不是 root-relative。所以使用:

background: url("assets/images/someImage.png");

background: url("/images/someImage.png"); 如果 css 位于 assets 文件夹中。 (如果需要,您可以使用../ 上一个文件夹)

【讨论】:

  • 嗨格本,感谢您的回复。我想避免使用相对 url,因为它已经创建了站点,并且我试图让它工作,而不必通过并手动更改所有背景图像引用。更烦人的是所有当前的引用都是不同的。有些使用 root 而其他不使用,甚至还有多个图像文件夹,因此没有快速查找和替换选项。
  • 找到url("/path/to/css并替换url("。如果图像不在 css 文件夹(的子文件夹)中,则不会工作。重写规则无法做到这一点,因为您不知道/assets/images/someImage.png 是从client1 还是从client2 请求的,所以您不知道它是否应该变为/client1/site/assets/images/someImage.png/client2/site/assets/images/someImage.png。您可以通过检查引用者来做到这一点,但这并不总是有效。
  • 感谢您的回复。但这就是我正在处理的当前站点的问题,css 的原始创建者已经链接到整个地方的图像,有些在 css 文件夹之外。但是每个站点都有自己的 htaccess 文件,所以我可以手动为每个站点的 htaccess 文件添加正确的路径。谢谢
猜你喜欢
  • 2012-07-21
  • 2013-09-12
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-22
  • 2011-02-28
  • 2020-12-31
相关资源
最近更新 更多