css - 在 CakePHP 的 CSS 文件中如何处理 URL,以便它们引用正确的位置?

标签 css url cakephp image stylesheet

我正在设计一个经常使用 CSS 文件的网站,但我有几次出现背景图像、列表中的元素符号图像,我可能会发现另一个需要 css url() 函数。

但是,在 cake 中,所有 URL 都应该由 Route::url() 函数处理,有几种方式,最常见的是 $html->url()

但我的问题是 CSS 文件不由 PHP 解释。我如何创建一个包含类似内容的 CSS 文件:

div.coolbg {
  background-image: url('<?= $html->url("/img/coolbg.jpg") ?>');
}

看,我的最后一个选择是在布局上内联导入 css 文件,以便对其进行解释。但我非常喜欢使用更“蛋糕”的方法。

谢谢!

最佳答案

您不需要在您的 css 文件中使用 $html->url(),因此您不需要通过 PHP 解析 CSS 文件或创建一个 CssController。

如果您的蛋糕应用程序安装在您的虚拟主机 DocumentRoot 中,只需将所有从 webroot 到图像的路径设置为绝对路径。例如

div.coolbg {
  background-image: url(/img/coolbg.jpg);
}

这会将 app/webroot/img/coolbg.jpg 中的图像应用到您的

如果您的蛋糕应用未安装在虚拟主机 DocumentRoot 中,即您通过类似 http://www.domain.com/myapp/ 的 URL 访问您的蛋糕应用, 然后你创建相对于 css 文件的图像路径。查看 app/webroot/css/cake.generic.css 中的样式规则,例如

#header h1 {
background:#003D4C url(../img/cake.icon.gif) no-repeat scroll left center;
color:#FFFFFF;
padding:0 30px;
}

这是可行的,因为样式表位于 app/webroot/css/目录中,图像位于 app/webroot/img/目录中,所以路径“../img/cake.icon.gif”出现了css 目录,然后回到 img 目录。

关于css - 在 CakePHP 的 CSS 文件中如何处理 URL,以便它们引用正确的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/512556/

相关文章:

css - 在不同元素之间共享样式文件夹的最佳方式是什么?

javascript - Textarea block 重音字母和 alt 代码符号

php - MVC 网址重定向

cakephp - 如何从cakephp 3中的url访问参数

mysql - CakePHP - 允许belongsTo外键为空值

html - 菜单在悬停时跳转

javascript - 如何使用javascript回到网站底部,如回到顶部?

css - 在谷歌字体调用中选择性使用 "text"变量

c# - Response.redirect URL在查询字符串中将空格编码为%20

cakephp - 使用条件过滤 HABTM 相关模型