java - Angular Spring Boot 打包问题 Whitelabel 错误
问题描述
我有一个以 Spring Boot 作为后端,Angular 作为前端的项目。我打包的方式是,我构建 angular 项目并将内容复制到 Spring Boot 资源文件夹中,并在我的 Spring Boot 控制器中返回由 angular 生成的 index.html。
@Controller
public class IndexController {
@Autowired
ISupportedLanguagesRepository is;
@RequestMapping(value={ "/", ""})
public String getIndex() {
return "index.html";
}
}
所有其他控制器都是对后端的 REST api 调用。当我分别运行 Spring Boot 和 Angular 项目时,所有路由都运行良好。
但是当我将它们打包在一起时,只有当所有导航都通过应用程序完成时,这些路由才起作用。但是当我直接尝试获取 url 时,它给了我这个
白标错误页面
此应用程序没有显式映射 /error,因此您将其视为后备。
但是当我从应用程序转到这条路线时它会起作用。
我该如何解决这个问题?即使在任何页面上点击刷新也会产生相同的错误。
解决方案
正如 dirk 所提到的,通过在路由中使用 {useHash: true} 解决了这个问题
推荐阅读
- c# - 使用 MIP SDK 从 MS 365 个人帐户中解密加密的 Office 365 电子邮件
- fft - 使用 sympy 的框函数的傅里叶级数
- reactjs - 在 Heroku 托管的我的 React 应用程序中,反应浏览器路由器可以成功引导确切的路由,但找不到动态路由
- reactjs - 如何从 Reactjs 中的 proptypes 抛出错误而不是警告?
- terraform - Terraform - AKS 私有云 | 无限等待掌舵释放
- javascript - @click 调用在 vue.js 中不起作用的方法
- ssl - 如何在 GCP 中激活 SSL 证书。?
- javascript - 如何替换 AdjacentHTML 而不是创建另一个 AdjacentHTML 实例
- python - ValueError :当数组长度与索引长度不匹配时。如何调试这个?
- c# - 结构字段的加载值指令与加载地址指令的效率