2

我一直在本地(在 MAMP 中)开展一个项目,并决定将其在线上传到我的 LAMP 服务器。该服务器以前可以工作,但是在上传了我所有的新内容后,它并没有呈现 HTML,只是将源代码显示为纯文本。

所有 PHP 似乎都运行良好,因为它显示了正确的内容。

无济于事,我尝试使用header("Content-Type: text/html"). 但是,当我删除 PHP 包含并直接使用 HTML 时,它可以正常工作。

我正在使用一个index.php文件,其中包括其他一些文件:

<?php

include_once 'header.php';

include_once 'inc/window.php';
createWindow();

include_once 'footer.php';

?>

也许我的header.php文件也可能包含一些线索:

<?php session_start(); ?>

<!doctype html>

<html>

<?php

include_once 'inc/files.php';
$files = json_decode(getFiles($ids));

?>

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

    <?php

    $title = '';
    foreach($files as $i=>$file){
        $title .= $file->content . ' ';
        if(count($file) > 1 && $i < count($file)-1) $title .= '+ ';
    }

    ?>

    <title>* <?php echo strtolower($title); ?></title>

    <meta name="viewport" content="width=device-width,initial-scale=1">

    <link rel="stylesheet/less" type="text/css" href="css/main.css">

    <script src="js/libs/modernizr-2.0.6.min.js"></script>
</head>

<body>

我的环境正在运行 PHP5+(我相信是 5.3?)、Ubuntu 和 Apache2。我也有 webmin 和 SSH 访问权限。

任何想法,将不胜感激!

强尼

4

1 回答 1

0

哇 - 经过多一点调试后想通了!

该问题与 files.php 文件中设置的内容类型有关:

if(!headers_sent()) header('Content-Type: application/json');

出于某种原因,这是在发送页面标题之前遇到的。

我不确定为什么在我的本地网站上没有发生这种情况,如果有人可以对此发表意见,我很乐意为这个答案投票!:) 我现在已经删除了它,虽然它不是真的必要。

谢谢 S/O

于 2013-04-24T00:44:30.453 回答