我有CSS文件,我想以PHP可变格式引用该文件中的一些图像路径。然后我在html文件中引用该css文件。以下是我的文件
CSS文件
<? header ("Content-type: text/css");?>
body{ margin:0px; font:9px/11px "Tahoma", Arial, Helvetica, sans-serif; color:#010000;
background:#f3f6e1 url(<?php echo base_url().'public/';?>images/body_bg_1.gif) repeat-x 0 0}
HTML文件
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="css/layout.css" media="screen">
</head>
其他事情。你能解释一下如何做到这一点吗?
答案 0 :(得分:13)
如果您能够重命名CSS文件“layout.php”,则不需要所有这些解决方法:
您的layout.php文件如下所示:
<?php header("Content-type: text/css; charset: UTF-8"); ?>
body{ margin:0px; font:9px/11px "Tahoma", Arial, Helvetica, sans-serif; color:#010000;
background:#f3f6e1 url(<?php echo base_url().'public/';?>images/body_bg_1.gif) repeat-x 0 0}
您的HTML文件如下所示:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="css/layout.php" media="screen">
</head>
答案 1 :(得分:1)
base_url()
的返回值可能不会在路径分隔符中结束。
考虑到这一点,试试这个:
@import url("<?php echo base_url().'/public/';?>css/layout.css");
(注意“公开”之前的斜杠)
@import
中的路径是否正确或
您还可以通过浏览器查看CSS,以确定是否正确构建了内容。如果在响应中看到<?php
,则需要让Apache将CSS文件视为PHP。
您可以在.htaccess文件中添加类似以下的内容:
<FilesMatch "\.css$">
SetHandler application/x-httpd-php
Header set Content-type "text/css"
</FilesMatch>
您应该确保启用“mod_headers”Apache模块以允许使用Header
指令。
虽然,我个人会将这些动态样式表重命名为.php.css扩展名。这没有任何效果,但Apache可以配置为仅将动态样式表传递给PHP预处理器。
<FilesMatch "\.php\.css$">
SetHandler application/x-httpd-php
Header set Content-type "text/css"
</FilesMatch>
答案 2 :(得分:1)
我认为问题是.css
文件不会被解释为PHP,因此文件中的代码不会被执行。如果将其作为PHP文件包含在内,则应执行代码并填写值。
[编辑] 这似乎是这样做的方式,正如有人在原帖here的评论中所链接的回答所指出的那样。
答案 3 :(得分:1)
如果您对网址重写有一点了解,那就很简单了。
在根目录中写一个.htaccess文件,它看起来像:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^customized\.css$ css\_generator\.php [L]
</IfModule>
现在只需创建一个包含内容的文件css_generator.php:
<?php header('Content-type: text/css; charset: UTF-8'); ?>
body{ margin:0px; font:9px/11px "Tahoma", Arial, Helvetica, sans-serif; color:#010000;
background:#f3f6e1 url(<?php echo base_url().'public/';?>images/body_bg_1.gif) repeat-x 0 0}
你的HTML应该是这样的:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="customized.css" media="screen">
</head>
了解刚刚发生的事情。
希望这有帮助