【发布时间】:2018-04-18 12:12:45
【问题描述】:
我正在后端开发带有 spring boot 的 webapp,并在前端做出响应(具体而言,我使用 create-react-app)。现在我认为,只要有根级请求进入,甚至是对任何未被我的后端 API 占用的路由的请求,让 spring 为前端应用程序提供服务将是最简单的解决方案。
为了集成本地字体,我在前端的index.css 中声明了字体:
@font-face {
font-family: 'TheFont';
src: local('TheFont'), url(./fonts/TheFont/TheFont.ttf) format('truetype');
}
字体文件(在我的项目中)位于src/fonts。在开发服务器 (npm start) 上运行它一切正常。但是当我构建应用程序并将其复制到我的 Spring Boot 后端中的resources/static/ 时,字体不会显示,而其他一切都按预期工作。
最令人困惑的事情是,当我在浏览器中搜索网站的源代码并点击指向呈现的 css 的链接,然后点击字体文件的 url(看起来像 ../../static/media/TheFont.9f30b69a.ttf)并请求那个直接通过localhost:8080/static/media/TheFont.9f30b69a.ttf文件,我得到字体文件!
渲染出来的css文件的路径是static/css/main.767343db.css,所以字体的相对路径应该没问题。
顺便说一句,我在 react 应用程序的 package.json 中设置了 "homepage" : "." 以获取相对于 index.html 文件的资产路径(正如我阅读的许多帖子和示例中所建议的那样)。
我做错了什么?这可能是因为我使用 Spring Boot 后端应用程序为前端提供服务吗?
感谢您的帮助!
【问题讨论】:
标签: spring reactjs spring-boot create-react-app