我对Google App Engine(Java)有疑问。我想将网址格式/foo/*
映射到一个静态文件/foo.html
(以便请求/foo/bar
或/foo/baz
将返回/foo.html
的内容。静态文件foo.html
包含使用基于实际请求URL的内容填充页面的JavaScript。
我知道如何使用web.xml
将通配符URL映射到servlet,但我没有找到类似的静态文件。
我的appengine-web.xml
有<public-root>/static</public-root>
。
到目前为止,我提出的最佳解决方案是将/foo/*
映射到作为JSP页面提供foo.html
的servlet。
答案 0 :(得分:2)
你不需要使用servlet,你可以将url模式直接映射到jsp,并且只有html:
<servlet>
<servlet-name>foo.jsp</servlet-name>
<jsp-file>/foo.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>foo.jsp</servlet-name>
<url-pattern>/foo/*</url-pattern>
</servlet-mapping>
答案 1 :(得分:1)
使用以下2种解决方法之一:
选项1
假设您要将/foo
映射到html文件...
在foo
目录中创建目录webapp
在index.html
目录中创建一个html文件foo
在appengine-web.xml
添加以下内容:
<static-files>
<include path="/foo"/>
</static-files>
现在部署并访问/foo
,它应该在foo目录中提供index.html
选项2
使用app.yaml for java,如下所述:https://cloud.google.com/appengine/docs/java/configyaml/appconfig_yaml
并使用静态文件处理程序:https://cloud.google.com/appengine/docs/python/config/appconfig#Python_app_yaml_Static_file_handlers