0

我在我正在做的应用程序中使用主题,并且需要一个全局 css/img/js 文件夹

我曾尝试使用 app/webroot 作为此文件夹,但无法从主题中获取任何 CSS 来显示图像。

我有一个像 ::/app/views/themed/my_theme/webroot/css/file.css

有一些看起来像这样的CSS:

...
body{
     background-image: url('../img/file.jpg');
}
...

如果我有图像,/app/views/themed/my_theme/webroot/img/file.jpg一切都可以 100% 工作,但是当我将图像放入其中时,/app/webroot/img/file.jpg它不会显示。我已经尝试了各种组合

我也尝试过使用插件目录,app/plugins/my_plugin/webroot/img/file.jpg但我尝试过的各种路径也不会显示图像。

任何想法如何让图像显示?我不介意它是用于 webroot/ 还是在 plugins/xyz/ 中,只要我可以在许多不同的主题中使用相同的图像而不必复制图像

当图像在 /webroot/img 中时,我可以使用完整路径,url(http://locahost/my_app/img/file.jpg)并且它可以工作。

不起作用的东西

url("img/file.jpg")

url("/img/file.jpg")

网址(“../img/file.jpg”)

url("/../img/file.jpg")

网址(“../../img/file.jpg”)

谢谢。

4

3 回答 3

3

在你的 CSS 文件中

body{ background-image: url('/img/file.jpg'); }

这将使用根区域来查找图像/app/webroot/img/file.jpg

于 2010-07-30T21:58:20.270 回答
1

CSS 具有相对于其放置路径的图像 url。

my_theme 中的 CSS 文件在浏览器中像 site.com/theme/my_theme/css/style.css 一样链接。因此,如果您想在主题的 CSS 中使用来自 app/webroot/img 的图像,请使用 url(../../../img/image.png)

于 2010-07-31T00:17:08.233 回答
0

我没有尝试过,但食谱说:

如果您想将主题资源保留在 app/webroot 中,建议您将 app/webroot/themed 重命名为 app/webroot/theme。

于 2010-07-31T00:37:04.523 回答