2014-10-30 51 views
1

我已經使用Phpstorm創建了一個GAE php應用程序,但問題出在該網站創建的。當網站加載它顯示一切正確,當我提交表單時,該網站了解第二個php文件,它處理表單與index.php文件相同。它發生在我的css文件也和鉻描述錯誤爲「資源解釋爲樣式表,但傳輸與MIME類型文本/ HTML」,但我用樣式標記我試圖打印接收到的數據表單並打印整個index.php文件。 我認爲問題出在app.yaml文件中。我的項目中有3個文件:app.yaml,index.php,toAction.php。Google App Engine將所有文件理解爲主要index.php文件

注意:我使用ajax/jquery連接到php,因爲我不想PHP重新加載我的頁面。我嘗試沒有它,問題仍然是一樣的。同一個網站在其他網頁寄存服務上運作。我也發佈了ajax/jquery代碼。

這裏是我的app.yaml:

application: santamailer 
version: 1 
runtime: php 
api_version: 1 
threadsafe: true 

handlers: 
- url: .* 
script: main.php 

阿賈克斯/ jQuery代碼:

$(document).ready(function(){ 
$('#form').on('submit',function(e) { 

$.ajax({ 
    url:'/toAction.php', 
    data:$(this).serialize(), 
    type:'POST', 
    success:function(data){ 
     console.log(data); 
    $("#error").show().fadeOut(5000); 
    }, 
    error:function(data){ 
     $("#error").show().fadeOut(5000); 
    } 
    }); 
e.preventDefault(); 
}); 
}); 

toAction.php:

<?php 
if(isset($_POST['name'])) { 
    //print_r($_POST); 

    $name = $_POST['name']; 

    $message1 = $_POST['message']; 

    echo $name; 
    echo $message1; 

} 

    echo $_POST['name']; 
    echo $_POST['message1']; 
?> 
+0

您很可能需要爲css和javascripts使用靜態文件處理程序:https://cloud.google.com/appengine/docs/php/config/appconfig#PHP_app_yaml_Static_file_handlers – Mars 2014-10-30 21:40:16

+0

謝謝,我檢查了網址,但我無法不明白。可以給我一個關於我的代碼的例子。 – 2014-10-31 00:54:43

回答

1

假設你有一個包含所有的文件夾css文件,比如說/ static/css,你應該在你的app.yaml文件中有對應的條目

handlers: 
- url: /static/css 
    static_dir: static/css 
- url: .* 
    script: main.php 

這樣,當你通過HTTP請求一個css://.appspot.com/static/css/foo.css,GAE將成爲正確的靜態文件,而不是打你main.php。

+0

感謝它使Css工作,但如果我想讓我的toAction.php工作,我該怎麼做。 – 2014-11-01 05:47:02

+0

您最有可能有一個處理程序,它將所有* .php網址映射到相應的腳本,如' - url:/(.+\.php)$ script:\ 1'(請參閱https:// cloud。 google.com/appengine/docs/php/config/appconfig瞭解更多詳情)。 – Mars 2014-11-03 19:01:20