【问题标题】:Micronaut + Angular : Refresh pageMicronaut + Angular:刷新页面
【发布时间】:2019-03-08 21:59:35
【问题描述】:

我正在使用 Micronaut 和 Angular 4 构建应用程序。

我已将 Micronaut 配置为提供静态资源

micronaut:
    router:
        static:
            resources:
                enabled: true
                mapping: /**
                paths: classpath:public

一切正常(DefaultURL 路由:http://localhost:8080/dashboard)。 Angular 应用程序已加载,用户与应用程序交互并正确导航路径。

在控制器中,我将服务器配置为重定向到 index.html。如果服务器中不存在该路径。

@Get("/{[path:[^\\.]*}")
    @Secured(SecurityRule.IS_ANONYMOUS)
    @Produces(MediaType.TEXT_HTML)
    public HttpResponse<?> refresh() {
        return HttpResponse.redirect(URI.create("/index.html"));
    }

但是当用户刷新页面时(例如按 F5)。

如果当前 Url 是 "http://localhost:8080/userdetails/status" 刷新后 Angular 应用程序会转到默认路由 "http://localhost:8080/dashboard", 而不是用户所在的路线 "http://localhost:8080/userdetails/status"

请帮我解决这个问题 谢谢

【问题讨论】:

    标签: java angular micronaut


    【解决方案1】:

    在下面找到我已实现的工作代码。

    @Controller("/")
    public class IndexController {
        @Inject
        ResourceResolver res;
    
    
        @Get("/{[path:[^\\.]*}")
        @Secured(SecurityRule.IS_ANONYMOUS)
        @Produces(MediaType.TEXT_HTML)
        public HttpResponse<?> refresh(HttpRequest<?> request) {
            StreamedFile indexFile = new StreamedFile(res.getResource("classpath:public/index.html").get());
            return HttpResponse.ok(indexFile);
        }
    }
    

    【讨论】:

      【解决方案2】:

      这是因为您重定向到/index.html。来自先前请求的信息丢失。与其重定向,不如直接渲染 html。

      有几个工具可以做到这一点,包括使用resourceResolver 来解析类路径上的 html。您可以返回一个StreamedFile 实例以将流呈现给响应。

      可以注入解析器,您可以自己构建流文件。

      https://docs.micronaut.io/latest/api/io/micronaut/core/io/ResourceResolver.html https://docs.micronaut.io/latest/api/io/micronaut/http/server/types/files/StreamedFile.html

      【讨论】:

      • 您能否指导我一些示例代码如何在控制器或任何 bean 类中处理以解决此问题。这将非常有帮助。谢谢你
      • @naveen 很简单,getResource 方法返回一个URL,你可以用它来构造StreamedFile
      • @james-kleeh感谢您的指导。现在问题已经解决了。我已经发布了我的答案
      猜你喜欢
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-11
      • 2017-10-06
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多