我有以下dispatch.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<dispatch-entries>
<dispatch>
<url>www.custom-domain.com/</url>
<module>default</module>
</dispatch>
</dispatch-entries>
上述路线没有任何问题。我也省略了正在运行的子域映射。
gcloud preview app list-versions
11:24 PM Host: appengine.google.com
admin-console: ['2']
default: ['2', ah-builtin-datastoreservice]
我想将http://www.custom-domain/admin/*
配置为指向我的admin-console
模块。
我知道该模块已部署并正常运行,因为当我转到http://admin-console.myappid.appspot.com
时,它会显示正确的index.html
页面。
<dispatch>
<url>*/admin/*</url>
<module>admin-console</module>
</dispatch>
我保存了文件并运行了mvn appengine:update_dispatch
,它报告没有错误,并且操作成功。
当我尝试转到http://www.custom-domain.com/admin/index.html
或http://www.custom-domain/admin/
的任何其他变体时,它会以404 Not Found
消息失败。
我也尝试过以下操作,但也失败了404 Not Found
。
<dispatch>
<url>www.comic-pages.com/admin/*</url>
<module>admin-console</module>
</dispatch>
我搜索并搜索过,找不到这个不起作用的原因。
答案 0 :(得分:4)
<dispatch>
<url>www.custom-domain.com/admin/*</url>
<module>admin-console</module>
</dispatch>
将www.custom-domain/admin/*
模块的/*
路由到admin-console
。
在深入了解default
模块的日志并且没有找到www.custom-domain.com/admin/*
路由的任何条目之后,我查看了admin-console
模块,并在那里找到了大量条目。 这些时间比预留时间晚了大约10分钟。
我试图从index.html
模块的根上下文加载admin-console
。
http://www.custom-domain.com/admin/index.html
这在admin-console
模块日志中产生了以下错误。
/admin/index.html No handlers matched this URL.
它实际上正在做的是将www.custom-domain.com/admin/*
路由到/admin/*
模块的admin-console
。
我尝试添加目录并将index.html
移至src/main/webapp/admin/index.html
。这也不起作用,实际上是在寻找处理程序。
我创建了一个Servlet
并为<url-pattern>/admin/*</url-pattern>
添加了一个映射,它开始工作。
因此,如果要将某些内容映射到非默认模块的/
,则必须指定子域并将其映射到模块。
<dispatch>
<url>admin.custom-domain.com/*</url>
<module>admin-console</module>
</dispatch>
这是我发现在非默认模块的根上下文中访问任何内容的唯一方法。