【问题标题】:Cakephp images from css using themes使用主题的 css 中的 Cakephp 图像
【发布时间】:2024-01-14 10:16:01
【问题描述】:

我在我正在做的应用程序中使用主题,并且需要一个全局 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")

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

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

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

谢谢。

【问题讨论】:

  • steve 和 fahad19 做对了,最终将 vhosts 添加到我的 apache 配置中,这样就没有子文件夹,然后一切又好了

标签: cakephp plugins themes assets


【解决方案1】:

在您的 CSS 文件中

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      我没有尝试过,但cookbook 说:

      如果您想保留您的主题资产 在 app/webroot 里面推荐 您将 app/webroot/themed 重命名为 应用程序/webroot/主题。

      【讨论】: