Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当使用PHP作为处理程序时,DOCTYPE导致外部样式表不起作用_Php_Apache2_Doctype - Fatal编程技术网

当使用PHP作为处理程序时,DOCTYPE导致外部样式表不起作用

当使用PHP作为处理程序时,DOCTYPE导致外部样式表不起作用,php,apache2,doctype,Php,Apache2,Doctype,当通过Apache2的SetHandler(一个PHP脚本)传递请求时,以及在文档中指定DOCTYPE时,外部样式表在工作时遇到问题。如果没有声明DOCTYPE,页面可以与外部样式表配合使用。这是在Apache2.2.15、PHP5.3.3和Apache2.4.6、PHP5.5.3下实现的 我的Apache配置: <VirtualHost *:80> DocumentRoot /data/www/test <Directory "/data/www/test/_auth">

当通过Apache2的SetHandler(一个PHP脚本)传递请求时,以及在文档中指定DOCTYPE时,外部样式表在工作时遇到问题。如果没有声明DOCTYPE,页面可以与外部样式表配合使用。这是在Apache2.2.15、PHP5.3.3和Apache2.4.6、PHP5.5.3下实现的

我的Apache配置:

<VirtualHost *:80>
DocumentRoot /data/www/test
<Directory "/data/www/test/_auth">
    Require all granted
</Directory>
Action VerifyAuth /_auth/authenticate_test.php
<Directory "/data/www/test/testsite">
    SetHandler VerifyAuth
    Require all granted
</Directory>
</VirtualHost>
当我检查日志时,我可以看到样式表正在被读取,返回代码为200,但是样式表格式没有得到应用。同样,当删除DOCTYPE时,页面会按预期加载。我可以在html文件中嵌入样式,该文件也可以工作,但我需要能够利用外部样式表

我试图完成的是让所有请求通过一个用PHP编写的身份验证脚本来传递,该脚本用于在testsite目录下访问的任何和所有内容。因为将有我不想通过从每个页面删除所有DOCTYPE声明来定制的内容,所以无论是否声明DOCTYPE,我都希望能够实现这一点


我已经在Chromium 28.0.1500.71(ubuntu 13.04)、Firefox 24.0(ubuntu 13.04)和IE9(Win 7)上尝试过这一点。

不幸的是,我刚刚在stackoverflow()上发现了这一点

将我的auth PHP处理程序更改为此已修复我的问题:

<?php
$type =
(get_object_vars(apache_lookup_uri($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'])));
header('Content-type: '.$type['content_type']);
include($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI']);
?>

不幸的是,我刚才才在stackoverflow()上找到这个

将我的auth PHP处理程序更改为此已修复我的问题:

<?php
$type =
(get_object_vars(apache_lookup_uri($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'])));
header('Content-type: '.$type['content_type']);
include($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI']);
?>


页面上是否没有其他代码?不同的doctype会发生什么?页面上没有其他代码。我试图尽可能简单地解决这个问题,以帮助找出发生了什么。其他doctype不会改变行为。任何doctype都会导致样式不呈现。我一直在看他的more,使用Chrome开发工具,我看到了这样的内容:“资源被解释为样式表,但使用MIME类型text/html传输”作为我的样式表。我猜HTML是以包含语句的PHP形式通过处理程序的,但在使用DOCTYPE时CSS的MIME类型不是text/CSS。奇怪的是,当我删除DOCTYPE时,我收到了相同的消息,但内容显示正确。我现在无法回答我自己的问题,因为我是该网站的新手。但我的答案是:不幸的是,我刚刚在stackoverflow()上发现了这个问题。将auth-PHP处理程序更改为此已解决了我的问题:页面上没有其他代码?不同的doctype会发生什么?页面上没有其他代码。我试图尽可能简单地解决这个问题,以帮助找出发生了什么。其他doctype不会改变行为。任何doctype都会导致样式不呈现。我一直在看他的more,使用Chrome开发工具,我看到了这样的内容:“资源被解释为样式表,但使用MIME类型text/html传输”作为我的样式表。我猜HTML是以包含语句的PHP形式通过处理程序的,但在使用DOCTYPE时CSS的MIME类型不是text/CSS。奇怪的是,当我删除DOCTYPE时,我收到了相同的消息,但内容显示正确。我现在无法回答我自己的问题,因为我是该网站的新手。但我的答案是:不幸的是,我刚刚在stackoverflow()上发现了这个问题。将我的auth PHP处理程序更改为此已修复我的问题:
h1 { background:black; color:blue; width:100px; display: block;}
<?php
$type =
(get_object_vars(apache_lookup_uri($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'])));
header('Content-type: '.$type['content_type']);
include($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI']);
?>