在GAE java标准环境中配置路由

时间:2017-05-19 21:11:59

标签: java eclipse angular google-app-engine

我在java标准环境中有一个GAE应用程序用于后端,而角度4.0用于前端。

该应用程序在本地运行良好,但在部署时,刷新时或尝试键入所需页面的URL时出现404错误。

据我所知,我必须按照angular documentation中的说明定义路由回退,以便将每个未知请求重定向到我的index.html。

据我从许多stackoverflow GAE appengine python问题中了解到,解决方案包括配置app.yaml文件。

好的,但是怎么样?在app引擎标准环境中,app.yaml文件是在staging文件夹中自动生成的,如下所示,但是当我使用google插件进行eclipse部署并且我无法访问它时,一切都在幕后发生。

runtime: java7
inbound_services:
- warmup
derived_file_type:
- java_precompiled
threadsafe: True
auto_id_policy: default
api_version: '1.0'
handlers:
- url: (/.*/)
static_files: __static__\1index.html
upload: __NOT_USED__
require_matching_file: True
login: optional
secure: optional
- url: (/)
static_files: __static__\1index.html
upload: __NOT_USED__
require_matching_file: True
login: optional
secure: optional
- url: (/.*)
static_files: __static__\1
upload: __NOT_USED__
require_matching_file: True
login: optional
secure: optional
- url: /.*
script: unused
login: optional
secure: optional

有人可以告诉我是否有一种方法可以在appengine java标准环境中部署之前编辑app.yaml文件。 最近发布了类似的question,但暂时没有回应。

1 个答案:

答案 0 :(得分:0)

我认为你在浏览器端发生的角度路由与服务器端URL路由混淆,后者由web.xml描述。

我的猜测是,您的web.xml缺少欢迎文件来加载index.html。例如,这里有一个简单的web.xml应该可以解决这个问题:

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
 <welcome-file-list>
   <welcome-file>index.html</welcome-file>
 </welcome-file-list>
</web-app>