Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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
使用htaccess将js/css解析为PHP文件_Php_Javascript_.htaccess - Fatal编程技术网

使用htaccess将js/css解析为PHP文件

使用htaccess将js/css解析为PHP文件,php,javascript,.htaccess,Php,Javascript,.htaccess,嗨,我一直在努力在htaccess上做以下工作,但似乎不起作用 外面有人能帮我吗 AddType应用程序/x-httpd-php.js 我尝试了php4,php5版本,所有我能在谷歌上找到的东西,但我没有运气 我错过了什么 在my file.js中 以下是 <?php $(document).ready();//jquery/javascript ?> 我预计会出现一个php致命错误,但我认为上面的内容完全是纯文本。如果您试图让php在Javascript文件中工作,只需将

嗨,我一直在努力在htaccess上做以下工作,但似乎不起作用

外面有人能帮我吗

AddType应用程序/x-httpd-php.js

我尝试了php4,php5版本,所有我能在谷歌上找到的东西,但我没有运气

我错过了什么

在my file.js中

以下是

<?php 

$(document).ready();//jquery/javascript
?>


我预计会出现一个php致命错误,但我认为上面的内容完全是纯文本。

如果您试图让php在Javascript文件中工作,只需将Javascript重命名为
Javascript\u file.js.php
,并让php在其中工作即可

您将不会有任何问题,包括到您的页面

`试试:

<FilesMatch "\.(js)$">
AddHandler application/x-httpd-php .js
</FilesMatch>

AddHandler应用程序/x-httpd-php.js

一种可能是您未配置为允许使用.htaccess文件

您可以在httpd.conf中检查这一点

您希望确保
AllowOverride
设置为
All

乙二醇


选项如下符号链接
不允许超限
命令拒绝,允许
全盘否定
满足所有


选项如下符号链接
允许超越所有
命令拒绝,允许
全盘否定
满足所有

如果我是正确的,您的PHP JS文件必须提供一个内容类型为:application/x-javascript的头,否则它不会被解释为JS


标题(“内容类型:应用程序/x-javascript”)

如果您想使用just.htaccess配置(谁想在每个PHP文件中设置头?):


SetHandler应用程序/x-httpd-php
标题集内容类型“文本/css”
SetHandler应用程序/x-httpd-php
标题集内容类型“应用程序/javascript”

我对.htaccess了解不多,但我相信解决问题的部分方法是将jQuery移到php标记之外,如下所示:

<?php

?>
</script>
    $(document).ready();
<script>

$(document.ready();
您的文件将被解析为任何其他php文件,因此您的javascript将在javascript标记内正常执行

如果您想在javascript中包含php变量,只需这样做:

<?php
    $time=time();
?>

    <script>
        $( document ).ready(function(){
            $("SPAN").text("<? echo $time; ?>");
        });
    </script>
    <SPAN></SPAN>

$(文档).ready(函数(){
$(“SPAN”)。文本(“”);
});

上面的代码将返回SPAN元素内部的当前历元时间戳

我知道这是最好的,但是,在我的notpad++上,我希望高亮显示,而不是黑白显示:)您仍然可以包括使用
?或者您必须使用php来包含?.htaccess的工作原理与我用
RewriteRule测试的一样/index.php[L]
和其他一些位(我尝试将它们全部删除,但是
AddHandler应用程序/x-httpd-php.js
我认为很多浏览器并不关心JavaScript文件的内容类型,但是一些人认为如果CSS文件是text/html,那么它可能是一个奇特的404,不会被处理。但是,你必须这样做才能让php处理你的.js文件,您不需要在指令中使用AddHandler,但如果使用SetHandler,您会这样做。但是,当您使用此处理程序时,响应的MIME类型将默认为text/html,我认为这不能在.htaccess中重写,这意味着您需要(re)根据@Steve的回答,在PHP中设置MIME类型。如果标题行出现500个内部服务器错误,请确保在apache配置中启用了mod_标题。谢谢!
<FilesMatch "\.css$">
  SetHandler application/x-httpd-php
  Header set Content-type "text/css"
</FilesMatch>

<FilesMatch "\.js$">
  SetHandler application/x-httpd-php
  Header set Content-type "application/javascript"
</FilesMatch>
<?php

?>
</script>
    $(document).ready();
<script>
<?php
    $time=time();
?>

    <script>
        $( document ).ready(function(){
            $("SPAN").text("<? echo $time; ?>");
        });
    </script>
    <SPAN></SPAN>