动态 css 文件无法在网络上加载,适用于 xampp

dynamic css file won't load on web, works on xampp

这是我的第一个问题,我会努力做好的。

我在开发中为我的网站使用 DSS 文件,因为我想 "display:none" 如果满足某些条件(用户已登录 -> 不需要注册表格)一些 div

所以我的 index.php 链接样式表的头标签如下所示:

   <link rel="stylesheet" href="css/default.php" type="text/css">

default.php CSS 文件的开头如下:

    <?php 
    session_start();
    header('Content-type: text/css');?>

在我的本地网络服务器上(xampp 在 OS X 上)一切正常。 但是在在线服务器上 css 没有应用。您可以在这里访问损坏的网站:

hsturnierv2.pixelpioniere.net

它链接了正确的文件,但未应用样式。

编辑:

永远不要低估换行符的力量。 CSS 文件中的 php 标签没有从第 1 行开始。谢谢!

您在 CSS 文件中插入了 PHP 代码,这是错误的,请将其删除。

<?php 
session_start();
header('Content-type: text/css');?>

这是你的 PHP 文件。

检查服务器返回您的 css 的 MIME 类型。 https://developer.mozilla.org/en-US/docs/Incorrect_MIME_Type_for_CSS_Files

注意:即使您希望它以您想要的方式工作,您也应该 double-check 如果 CSS 文件大小的减少弥补了无法缓存 CSS client-side.

除此之外,实际问题是您在 header 已经发送时尝试修改 header 信息。这会将错误消息输出放在 css 之上,使其无效。

<br />
<b>Warning</b>:  session_start(): Cannot send session cache limiter - headers already sent (output started at /www/htdocs/w011c30e/hst/public_html/css/default.php:2) in <b>/www/htdocs/w011c30e/hst/public_html/css/default.php</b> on line <b>3</b><br />
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /www/htdocs/w011c30e/hst/public_html/css/default.php:2) in <b>/www/htdocs/w011c30e/hst/public_html/css/default.php</b> on line <b>4</b><br />

您的服务器在实际 css:

之前发送错误消息

http://hsturnierv2.pixelpioniere.net/css/default.php

禁用错误显示,或修复 headers 的问题。

我去你的 CSS link 并收到警告:

Warning: session_start(): Cannot send session cache limiter - headers already sent

这意味着您的脚本文件在 session_start() 之前为客户端发送输出。

  1. 确保 <?php
  2. 之前绝对没有空格或其他字符
  3. 如果失败,请尝试注释掉 session_start(),因为您的包含之一可能已经开始会话,如下所示:/**session_start(); **/