2012-05-23 36 views
6

您好我一直在努力在htaccess上執行以下操作,但它似乎不起作用。使用htaccess解析js/css作爲PHP文件

有人可以幫我嗎?

AddType application/x-httpd-php .js

我嘗試了PHP4,PHP5版本的所有事情,我能找到谷歌,但我沒有運氣。

我錯過了什麼?

在我file.js

有以下幾種......

<?php 

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

我期待一個PHP的致命錯誤,但我清楚地看到上面的爲純文本。

回答

9

嘗試:

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

我試過了,它不起作用:( – Val

+0

您必須這樣做才能讓PHP處理您的.js文件,但是,您不需要在指令中使用AddHandler,但是如果您使用的是SetHandler。但是當你使用這個處理程序時,響應的MIME類型默認爲text/html,我不認爲這可以在.htaccess中重寫,這意味着你需要(重新)設置MIME類型在PHP中,根據@ Steve的回答。 –

1

如果你想讓PHP在JavaScript文件中工作,你可以簡單地將Javascript重命名爲javascript_file.js.php,並讓PHP工作。

你將沒有問題,包括到你的網頁。

`

+0

我知道這就是最好的內當前時期的時間戳,但是,在我的notpad ++中,我希望打開熒光筆而不是黑白:) – Val

+0

您是否仍然可以使用''?或者你將不得不使用PHP來包含? – JVE999

0

一種可能是你沒有配置爲允許使用.htaccess文件的。

你可以在你的httpd.conf中檢查這個。

你要確保AllowOverride設置爲All

<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    Deny from all 
    Satisfy all 
</Directory> 

<Directory /> 
    Options FollowSymLinks 
    AllowOverride All 
    Order deny,allow 
    Deny from all 
    Satisfy all 
</Directory> 
+0

.htaccess的工作原理與我已經用'RewriteRule。/index.php [L]'和其他一些位(我嘗試全部刪除它們,但是AddHandler application/x- httpd-php .js' – Val

2

如果我是正確的,你的PHP JS文件有與內容類型:application/x-javasc的標題一起提供ript,否則它不會被解釋爲JS。

標題(「content-type:application/x-javascript」);

+0

'<?php header(「content-type:application/x-javascript」);'thats that my output now ...它需要先被處理爲一個php文件類型然後纔有能力要添加內容類型否? – Val

+0

我不認爲m任何瀏覽器都會關注JavaScript文件的內容類型,但有些人認爲如果CSS文件是text/html,那麼它可能是一個奇特的404,並且不會處理任何內容。 –

9

如果你想這樣做,只使用的.htaccess配置(誰想要設置的標頭在每PHP文件?):

<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> 
+0

如果使用Header行獲取500內部服務器錯誤,請確保在您的apache配置中啓用了mod_headers。謝謝李! –

0

我不知道很多有關的.htaccess,但我做的相信部分問題的解決方案是將jQuery的PHP的標籤之外像這樣:

<?php 

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

您的文件將被解析爲任何其他PHP文件,所以你的JavaScript將執行正常,內javascript標記。

,如果你想包括您的JavaScript中的PHP變量只是做像這樣:

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

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

上面的代碼將返回SPAN元素