我有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}
Run Code Online (Sandbox Code Playgroud)
HTML文件
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="css/layout.css" media="screen">
</head>
Run Code Online (Sandbox Code Playgroud)
其他事情.你能解释一下怎么做吗?
Wil*_*nah 15
如果您能够重命名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}
Run Code Online (Sandbox Code Playgroud)
您的HTML文件如下所示:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="css/layout.php" media="screen">
</head>
Run Code Online (Sandbox Code Playgroud)
这个问题非常相似: 包括:带有php文件扩展名的css?
也许 的返回值base_url()不以路径分隔符结尾。
考虑到这一点,请尝试以下操作:
@import url("<?php echo base_url().'/public/';?>css/layout.css");
Run Code Online (Sandbox Code Playgroud)
(注意“public”前面的斜杠)
@import正确或者
您还可以通过浏览器查看 CSS,以确定内容是否正确构建。如果您看到<?php响应内部,则需要让 Apache 将 CSS 文件视为 PHP 文件。
您可以将类似于以下内容的内容添加到 .htaccess 文件中:
<FilesMatch "\.css$">
SetHandler application/x-httpd-php
Header set Content-type "text/css"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
您应该确保启用“mod_headers”Apache 模块以允许使用该Header指令。
不过,就我个人而言,我会将此类动态样式表重命名为具有 .php.css 扩展名。这不会产生任何效果,但是可以将 Apache 配置为仅将动态样式表传递给 PHP 预处理器。
<FilesMatch "\.php\.css$">
SetHandler application/x-httpd-php
Header set Content-type "text/css"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)