【问题标题】:Jetty default url not listing the project name码头默认网址未列出项目名称
【发布时间】:2015-07-10 13:39:01
【问题描述】:

这是我第一次使用 Google App Engine 码头服务器。我在码头上部署了一个 webapp,它最初在 tomcat 上运行。

在 tomcat 中,url 模式是 localhost:8080/ProjectName/index.jsp

但是在jetty中它会删除浏览器url中的ProjectName,因此jsp无法读取资源

<link href="${pageContext.request.ContextPath}/css/bootstrap/bootstrap.css" rel="stylesheet" type="text/css"/>

为了在 GAE Jetty 上运行,我已删除到 ${pageContext.request.ContextPath}。有没有办法来解决这个问题?我需要按原样使用jsps。

【问题讨论】:

    标签: java google-app-engine jetty


    【解决方案1】:

    request.ContextPath 的值是 webapp 部署到的contextPath 的值。

    如果您的 web 应用程序部署到 / 的上下文路径(根或默认上下文路径),那么根据规范,您的 ${pageContext.request.ContextPath}""

    查看javax.servlet.http.HttpServletRequest#getContextPath()的javadoc

    本地 GAE 测试通常在 / 上下文路径上。

    另请注意,将您的 GAE Web 应用程序部署到 {appname}.appspot.com 的典型部署也将部署到 / 上下文路径。

    【讨论】:

    • 那么如何更改 GAE 的上下文路径,使其在 url 中显示应用名称?
    • Google App Engine 不使用并忽略上下文路径和上下文根配置 - see the google appengine documentation
    • 那么剩下的唯一方法就是从 jsp 中删除 js & css 文件的上下文路径?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 2018-09-24
    相关资源
    最近更新 更多