使用htaccess将js/css解析为PHP文件
嗨,我一直在努力在htaccess上做以下工作,但似乎不起作用 外面有人能帮我吗使用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文件中工作,只需将
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>