您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Spring Cloud:默认从网关重定向到UI

Spring Cloud:默认从网关重定向到UI

最后,我使代码工作了!感谢@pan提到根路径上的Zuul路由问题,以及@RzvRazvan揭示了Zuul路由的工作方式。

我刚刚将 添加到具有一个端点的Zuul路由网关微服务,以从根重定向http://localhost:8080/http://localhost:8080/ui/

@Controller
public class GateController {    
    @GetMapping(value = "/")
    public String redirect() {
        return "forward:/ui/";
    }    
}

重定向特性 端口 作为http://localhost:8080/ui/对 ,其实现端口隔离的弹簧启动应用程序 为http://localhost:8090/ui/

zuul:
  routes:
    ui:
      path: /ui/**
      serviceId: myproject.service.ui
      stripPrefix: false
      sensitiveHeaders:

UI微服务的属性

server:
  port: 8090
  servlet:
     contextPath: /ui

最终,此调用http://localhost:8080/将我们重定向到UI微服务的控制器,该控制器返回view index.html

@Controller
public class UiController {
    @GetMapping(value = "/")
    public String index() {
        return "index.html";
    }
}

实际上,在这样的体系结构中呈现静态内容时,我还有另一个问题,但它与我使用Vue.js框架开发的前端配置有关。如果可能对某人有帮助,我将在这里用几句话进行描述。

我具有UI微服务的以下文件夹结构:

myproject.service.ui
    └───src/main/resources
        └───public
            |───static
            |    ├───css
            |    └───js
            └───index.html

public文件夹的所有内容都是由npm run build任务从 和 生成的。第一次,我打电话给http://localhost:8080/我 了index.html和 的所有其他静态资源,因为他们被称为是这样的:

http:\\localhost:8080\static\js\some.js

因此,它为webpack中的静态资产配置了错误的公共路径。我在中更改了它config\index.js

module.exports = {
  ...
  build: {
    ...
    assetsPublicPath: '/ui/',
    ...
  }
...
}

静态资产也因此得到适当的称呼。例如:

http:\\localhost:8080\ui\static\js\some.js
Java 2022/1/1 18:19:59 有524人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶