当我尝试使用PHP的GZIP .js文件时,我得到某种与php相关的错误

Fre*_*rik 1 javascript php .htaccess gzip

好的,所以我用Google搜索了几页并提出了以下解决方案:

在.htaccess中添加它
#Active GZIP for php-files
php_flag zlib.output_compression On 
php_value zlib.output_compression_level 5
Run Code Online (Sandbox Code Playgroud)

这适用于.js和.css:

AddHandler application/x-httpd-php .css .js
php_value auto_prepend_file /Library/WebServer/Documents/blog/code/Helpers/ContentHeader.php
Run Code Online (Sandbox Code Playgroud)

这将执行.js以及.css作为php脚本.第二行包括以下页面:

<?php
    $pathInfo = pathinfo($_SERVER['PHP_SELF']);
    $extension = $pathInfo['extension'];

    if($extension == "css")
    {
        header("Content-type: text/css");
    }
    if($extension == "js")
    {
        header("Content-type: text/javascript");
    }
?>
Run Code Online (Sandbox Code Playgroud)

这将把标题"text/css"发送到.css文件,将"text/javascript"发送到javascript文件.到现在为止还挺好.然而问题是我使用了几个缩小的javascripts我得到某种php错误:

<br />
<b>Parse error</b>:  syntax error, unexpected ']' in <b>/Library/WebServer/Documents/blog/public/scripts/prettify/prettify.js</b> on line <b>18</b><br />
Run Code Online (Sandbox Code Playgroud)

要么:

<br />
<b>Warning</b>:  Unexpected character in input:  '\' (ASCII=92) state=1 in <b>/Library/WebServer/Documents/blog/public/scripts/showdown.js</b> on line <b>29</b><br />
<br />
<b>Parse error</b>:  syntax error, unexpected '?' in <b>/Library/WebServer/Documents/blog/public/scripts/showdown.js</b> on line <b>29</b><br />
Run Code Online (Sandbox Code Playgroud)

那么,有没有更好的方法呢?我能想到的唯一选择是手动进入.javascript文件并"纠正php不喜欢的错误".但它不应该是一个更容易的解决方案吗?

jon*_*ohn 6

我们使用Apache Mod_Deflate并使用那里显示的示例配置.在没有黑客攻击的情况下工作得很好