java - Micronaut + Angular:刷新页面
问题描述
我正在使用 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 "
请帮助我谢谢
解决方案
在下面找到我已实施的工作代码。
@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);
}
}
推荐阅读
- html - 在 HTML 输入下拉列表中禁用自定义输入
- c# - C# - 类似于来自 Kotlin 的关键字?
- python - 如何为分配的输出/输入打印一个句子?
- javascript - Swiper - 下一个和上一个按钮不起作用
- html - 如何使用下面提到的格式的 css 创建一个具有斜率效果的 4 div?
- laravel - 我想在播种时添加 2 行。行不是随机的,而是特定的值
- c - 了解 fwrite() 行为
- react-native - 我无法使用反应导航 v4 解决此捆绑错误
- c# - 实体框架 ChangeTracker 流并保存到查询
- python - 猜一个包含大写、小写和数字的 3 个字母字符串(按任意顺序)