2014-10-30 50 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