如何将URL / foo / *映射到Google App Engine上的静态文件/foo.html?

时间:2014-03-15 20:14:40

标签: jsp google-app-engine servlets

我对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。

2 个答案:

答案 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文件...

  1. foo目录中创建目录webapp

  2. index.html目录中创建一个html文件foo

  3. appengine-web.xml添加以下内容:

    <static-files>  
      <include path="/foo"/> 
    </static-files>
    
  4. 现在部署并访问/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