Php Google应用程序引擎上Codeigniter站点的路由
我正在尝试将Codeigniter站点部署到谷歌应用程序引擎PHP7。该站点包含一个联系人表单插件,该插件位于应用程序文件夹外的Php Google应用程序引擎上Codeigniter站点的路由,php,codeigniter,google-app-engine,routing,Php,Codeigniter,Google App Engine,Routing,我正在尝试将Codeigniter站点部署到谷歌应用程序引擎PHP7。该站点包含一个联系人表单插件,该插件位于应用程序文件夹外的数据文件夹中,如下所示: Root --application --data --css --js --system 当我从Cloud Shell localhost访问此页面时,它可以完美地加载: https://8080-dot-1234567-dot-devshell.appspot.com/data/contact.php 但在我将此站点部署到Google A
数据
文件夹中,如下所示:
Root
--application
--data
--css
--js
--system
当我从Cloud Shell localhost访问此页面时,它可以完美地加载:
https://8080-dot-1234567-dot-devshell.appspot.com/data/contact.php
但在我将此站点部署到Google App Engine并尝试访问该页面后,它返回一个404未找到
错误:
https://mysite.appspot.com/data/contact.php
有人能解释一下为什么页面可以在本地主机上工作,但在部署到Google App Engine时却不能工作吗?在这种情况下,
App.yaml
文件的位置至关重要:该文件所在的目录被认为是应用程序的顶级目录。这有两个主要含义:
- 应用程序所需的所有工件都必须位于此应用程序顶级目录中的某个位置,应用程序部署过程不会在该目录之外查看。我怀疑这是您的情况-如果您的
文件位于app.yaml
目录内,而应用程序
目录位于目录外。通过将必要的工件/目录从顶级目录外部符号链接到其内部(请参阅),可以解决这个问题,但这并不适用于所有运行时数据
- 访问应用程序中工件的路径需要与应用程序顶级目录相对
注意:本文中“应用程序”所指的实际上是GAE服务/模块(对于单个服务应用程序,它们是相同的)。但对于具有多个服务的GAE应用程序,所有这些注意事项都需要应用于每个应用程序服务。可能对这种情况感兴趣:我没有使用.htaccess文件,因为Google App Engine不支持该文件。好的,删除了注释我发现您描述中项目ID之间的差异很有趣。在第一个应用程序中,您使用了“devshell”,而在另一个应用程序中,您使用了“mysite”。这可能表示您引用的是不同的项目或服务,这意味着可能找不到文件或端点。