如何在 AppEngine Standard 中运行的 Spring 引导中设置上下文路径



有没有办法在GCP AppEngine Standard中运行的Spring Boot应用程序中设置上下文路径?

我想为所有资源添加一个隐式前缀。因此,如果@RestController是,比如说,/a/b,我希望访问它们,它们的URL始终是/my/prefix/a/my/prefix/b的。在 Spring 启动的正常嵌入式模式下,这可以通过设置server.servlet.context-path.但是,AppEngine 不遵循此设置。在其中,/my/prefix/a返回 404,我必须改用/a

如何向 AppEngine Standard 中的所有资源添加通用前缀?这对于AppEngine的服务/模块支持来说似乎是基本的,以避免在所有控制器中重复前缀,但是我找不到该怎么做

所以根据我与谷歌云支持团队的谈话 - 我得到确认,App Engine Standard不支持/尊重在spring-boot中设置的端口和上下文路径。

这是我从他们那里得到的回应:

"关于您对App Engine不遵循手动设置的端口号和上下文路径的担忧,这是因为它应该在yaml文件中设置。

对于要设置为 7777 的端口,应通过端口转发来完成。但是,端口转发仅在 App Engine Flex 中可用。有关此内容的更多详细信息,您可以访问此页面[1]。

对于上下文路径,您可以使用标记并包含在 appengine-web.xml 文件中。这将设置应用程序中包含静态文件的路径。您可以查看此文档 [2] 以获取更多信息。

您还可以在 appengine-web 中包含该代码.xml因为它对于提供静态内容(如图像、CSS 样式表或 JavaScript 文件(也很有用。您可以使用此参考 [3]。

通过此解决方案或解决方法,这也解决了可以在 App Engine 中部署 spring-boot 应用程序的问题。

如果您还有其他疑虑,请告诉我。

谢谢你,祝你有美好的一天!

[1] https://cloud.google.com/appengine/docs/flexible/custom-runtimes/configuring-your-app-with-app-yaml#port_forwarding [2] https://cloud.google.com/appengine/docs/standard/java/config/appref#public_root [3] https://cloud.google.com/appengine/docs/standard/java/config/appref#static_files ">

但是,将 更改为某个值仍不会将其作为上下文路径。所以不得不不幸放弃GAE。浪费了很多时间 - 希望这对其他正在为此苦苦挣扎的人有用。

最新更新