当前位置: 首页 > 知识库问答 >
问题:

如何使用两个URL映射

嵇出野
2023-03-14

我想将我的应用程序迁移到Spring Boot Jar部署。它目前使用没有启动的Spring4。

我在/api/*上有一个REST-API侦听器,在src/main/webapp上有一个JavaScript-fronten,可以在/*上访问。

现在我找不到在靴子里做同样的事情的方法。

通过更改server.context-path属性,我设法在/api/*处获得了api监听,但是我没有在/*处注册第二个servlet来为我的js-frontend服务。我知道jar部署不支持src/main/webapp,我还知道Spring Boot提供来自src/resources/publicsrc/resources/static的静态文件。但是在本例中,由于server.context-path更改,这些文件夹还指向/api/*

我尝试将另一个servlet注册为bean。这破坏了我的APIendpoint。

共有1个答案

严易安
2023-03-14

第一个选项--将src/main/webapp中的所有内容复制到src/resources/static中。这就是Spring Boot查找静态内容的地方。

第二个选项,继续使用src/main/webapp,但是将您的构建配置为将静态资源复制到target/classes/static中。我在前面的回答中为此提供了Maven配置:使用Spring MVC和Boot刷新静态内容

请注意,如果使用第一个选项,如果希望修改内容并在不运行构建的情况下自动重新加载内容,则需要在IDE中运行应用程序。如果您正在执行jar,使用第二个选项可以像Tomcat一样重新加载静态内容,但可能会导致一些混乱。就我个人而言,我大多数时候都使用第二个选项,因为我喜欢在命令行上运行应用程序,并使用Chrome Dev工具编辑HTML和JavaScript。

 类似资料:
  • 我有两个apache-nifi流。一个来自数据库,另一个来自flowfile。 摘自处理器。: 或者有没有办法使用另一个处理器来做到这一点?

  • 问题内容: 我有一个内容为web.xml的文件: 我尝试过要求 这两个请求都由Servlet2处理。为什么? 更新 谢谢你们的帮助。我意识到行为取决于servlet映射声明的顺序。我尝试了这个web.xml 结果: 问题答案: 从Servlet 3.0 规范开始,这是Web容器在收到请求后必须定位servlet的方式(重点是我的): 用于映射到servlet的路径是来自请求对象的请求URL减去上下

  • 我试过请求 这两个请求都由Servlet2处理。为什么? 更新 结果:

  • 但是当我运行应用程序时,我会得到以下异常:

  • 问题内容: 我有两个数组,一个带有url,一个带有内容。他们看起来像这样: 如何同时映射两个数组,并在新创建的元素中使用它们的值? 我需要使用我的reactplayer的url值和内容的值作为播放器下方的文本。 所以它应该看起来像这样: 这可能吗?更好的设置方法是什么? 问题答案: 使用的第二个参数(即当前元素的索引),可以访问第二个数组的正确元素。 如果您的项目中有其中一种库,那么这是该库中各种

  • 我有一些代码需要帮助...我正在尝试使用两个地图作为源并同时使用java lambdas构建地图 我可以用你们在上面看到的foreach做到这一点,但我试图用lambdas做到这一点。。。像这样的 我想要的输出是这样的 但我无法理解