2012-05-23 33 views
6

Xin chào Tôi đã cố gắng hết sức để thực hiện các thao tác sau trên htaccess nhưng có vẻ như nó không hoạt động.Phân tích cú pháp js/css dưới dạng tệp tin PHP bằng cách sử dụng htaccess

ai đó có thể giúp tôi không?

AddType application/x-httpd-php .js

Tôi đã thử các php4, phiên bản php5 tất cả những điều tôi có thể tìm trên google nhưng tôi không có may mắn.

tôi đã bỏ lỡ những gì?

trong file.js tôi

như sau ...

<?php 

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

Tôi mong đợi một lỗi php gây tử vong nhưng tôi thấy chính xác trên dưới dạng văn bản đơn giản.

Trả lời

9

Hãy thử:

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

Tôi đã thử điều này, nó không hoạt động: ( – Val

+0

Bạn phải làm điều này để có được PHP Để xử lý tập tin .js của bạn, tuy nhiên, bạn không cần phải sử dụng AddHandler bên trong một chỉ thị , nhưng bạn sẽ nếu bạn đang sử dụng Nhưng khi bạn sử dụng trình xử lý này, kiểu MIME của câu trả lời sẽ mặc định là text/html và tôi không nghĩ rằng điều này có thể bị ghi đè trong .htaccess, điều đó có nghĩa là bạn sẽ cần phải (lại) đặt kiểu MIME trong PHP, theo câu trả lời của @ Steve –

1

Nếu bạn đang cố gắng làm cho PHP hoạt động trong các tệp Javascript, bạn có thể chỉ cần đổi tên Javascript thành javascript_file.js.php và có PHP hoạt động bên trong đó.

Bạn sẽ không gặp vấn đề gì kể cả điều đó vào trang của bạn.

'

+0

Tôi biết thats tốt nhất, tuy nhiên , trên notpad của tôi + + tôi muốn có các tô màu trên và không phải màu đen và trắng :) – Val

+0

Bạn vẫn có thể sử dụng ''? Hoặc bạn sẽ phải sử dụng php để bao gồm? – JVE999

0

Một khả năng là bạn đang không được cấu hình để cho phép việc sử dụng một tập tin .htaccess.

Bạn có thể kiểm tra điều này trong httpd.conf của mình.

Bạn muốn đảm bảo rằng AllowOverride được thiết lập để All

ví dụ

từ

<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 hoạt động như tôi đã thử nghiệm với 'RewriteRule. /index.php [L]' và một số bit khác ở đó (mà tôi đã thử gỡ bỏ tất cả chúng, nhưng ứng dụng 'AddHandler/x- httpd-php .js' – Val

2

Nếu tôi đúng, tập tin JS PHP của bạn phải được phục vụ với tiêu đề của loại nội dung: application/x-javasc ript, nếu không nó không được hiểu là JS.

Tiêu đề ("loại nội dung: ứng dụng/x-javascript");

+0

' Val

+0

Tôi không nghĩ rằng m mọi trình duyệt đều quan tâm đến loại nội dung của các tệp JavaScript, nhưng một số giả định nếu tệp CSS là text/html, thì đó có thể là một 404 ưa thích và không có gì sẽ được xử lý. –

9

Nếu bạn muốn làm điều này sử dụng cấu hình chỉ .htaccess (ai muốn thiết lập các tiêu đề trong mỗi tập tin 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

Nếu bạn gặp lỗi máy chủ nội bộ 500 với dòng tiêu đề, hãy đảm bảo bạn đã bật mod_headers trong cấu hình apache của mình. Cảm ơn Lee! –

0

Tôi không biết nhiều về .htaccess nhưng tôi làm tin phần giải pháp cho vấn đề của bạn là để di chuyển jQuery bên ngoài của các thẻ php như vậy:

<?php 

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

tập tin của bạn sẽ được phân tích như bất kỳ tập tin php khác, vì vậy javascript của bạn sẽ thực hiện như bình thường, bên trong thẻ javascript.

nếu bạn muốn bao gồm các biến php trong javascript của bạn chỉ cần làm như vậy:

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

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

các mã trên sẽ trả lại kỷ nguyên dấu thời gian hiện tại bên trong của phần tử SPAN

Các vấn đề liên quan