Google App Engine,PHP,Mimetype,app.yaml,static_dir,script,static_files
当我部署我的网站时,PHP文件导致错误消息:
无法猜测
的mimetype
这是appl.yaml
配置文件:
application: applicationname
version: 1
runtime: php
api_version: 1
threadsafe: true
handlers:
- url: /
script: index.php
- url: /(.+\.php)$
script: \1
- url: /Client_Pages
static_dir: Client_Pages
导致错误的文件未在已部署的网站中加载。从我的计算机上的Google App Engine Launcher
完全运行相同的文件。
根目录中的index.php
文件不会导致错误,并在已部署的网站中运行。
我的已部署网站似乎会加载PHP
个文件 或 静态html
文件,但不会同时加载这两个文件?我在同一个PHP
文件夹中有HTML
和Client_Pages
个文件。我想知道这是否会导致问题,但我找不到任何文件说明我无法将它们放在同一个文件夹中。
我尝试在PHP
文件中明确引用app.yaml
文件,这会导致PHP
文件运行,但HTML
个文件赢了负荷。
application: yardsalesuperhighway
version: 1
runtime: php
api_version: 1
threadsafe: true
handlers:
- url: /Client_Pages/Offered_Menu.php
script: Client_Pages/Offered_Menu.php
- url: /Client_Pages/InputForm.php
script: Client_Pages/InputForm.php
- url: /Client_Pages/WantedPage.php
script: Client_Pages/WantedPage.php
- url: /Client_Pages
static_dir: Client_Pages
答案 0 :(得分:2)
您的应用程序无法在没有特定指令的情况下访问存储在static_dir中的文件。
来自文档 -
application_readable
可选。默认情况下,在静态文件处理程序中声明的文件是 作为静态数据上传并且仅提供给最终用户,他们不能 由应用程序读取。如果此字段设置为true,则文件为 也作为代码数据上传,以便您的应用程序可以阅读它们。
我不确定app.yaml中的处理程序是否可以与静态目录重叠。这不是我测试的东西,如果不可能,我不会感到惊讶。应用程序代码将上载到appengine基础架构中的其他服务中。
答案 1 :(得分:2)
不确定帖子是否仍然打开。我似乎遇到了类似的问题,这对我有用。我所做的是在我保存我的php文件的目录下添加application_readable: true
和mime_type: text/html
。所以也许你的app.yaml
应该是这样的:
application: yardsalesuperhighway
version: 1
runtime: php
api_version: 1
threadsafe: true
handlers:
- url: /Client_Pages/Offered_Menu.php
script: Client_Pages/Offered_Menu.php
- url: /Client_Pages/InputForm.php
script: Client_Pages/InputForm.php
- url: /Client_Pages/WantedPage.php
script: Client_Pages/WantedPage.php
- url: /Client_Pages
application_readable: true # allow for php scripts in the dir to be executable by the application (as specified in the documentation provided by Tim)
mime_type: text/html # assuming the php scripts will be echoing something, have what the echo as html (I got the mime types from http://www.iana.org/assignments/media-types/media-types.xhtml)
static_dir: Client_Pages
我得到了我的代码,它甚至可以与php脚本能够加载的同一目录中的HTML文件一起工作。
答案 2 :(得分:1)
请考虑使用static_files仅上传您想要静态的文件,而不是使用static_dir:
handlers:
- url: /Client_Pages/(.*\.php)
script: Client_Pages/\1
- url: /Client_Pages/(.*\.html)
static_files: Client_Pages/\1
upload: Client_Pages/.*\.html
- url: /
script: index.php