首页 > 解决方案 > 找不到角度资产静态文件

问题描述

问题:解决资产文件夹中的字体导致 404 Not Found 错误。 http://server.com/assets/fonts/Bold/RobotoCondensed-Bold.woff2

它虽然适用于本地开发: http://localhost/assets/fonts/Bold/RobotoCondensed-Bold.woff2

详细信息:我有一些字体位于资产文件夹中。它们被正确复制到 docker 图像路径:/usr/share/nginx/html/assets/fonts/Bold/RobotoCondensed-Bold.woff2

如果我请求http://server.com/service/assets/fonts/Bold/RobotoCondensed-Bold.woff2 ,则检索我的字体。/service前缀是提供服务的示例名称。

本地开发人员的基础 href 从server.com更改<base href="/"><base href="/service/">

我该如何解决这个问题。我可以尝试将 url 从更改为/assets/fonts/Light/RobotoCondensed-Light.woffservice/assets/fonts/Light/RobotoCondensed-Light.woff但在本地开发期间,此前缀不存在,因此我的字体将停止在本地环境中工作。

我还想提一下,我的 favicon.ico 服务正确。在本地环境前端请求不带前缀,而在服务器上它请求带有前缀 /service 的 favicon。Favicon 只在里面提到index.html

<link rel="icon" type="image/x-icon" href="favicon.ico" />

_fonts.scss 文件:

@font-face {
    font-family: 'Roboto Condensed';
    src: url('/assets/fonts/Light/RobotoCondensed-Light.woff2') format('woff2'),
        url('/assets/fonts/Light/RobotoCondensed-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

angular.json 文件:

"assets": [
    "projects/service/src/favicon.ico",
    "projects/service/src/assets"
],
"styles": [
    "projects/service/src/assets/scss/modules/_fonts.scss"
],

我对角度和前端很陌生,无法解决这个问题。非常感谢任何帮助。

标签: cssangularnginxfontsstatic-files

解决方案


我需要在我的网址中使用相对路径。

./assets/fonts/Light/RobotoCondensed-Light.woff

推荐阅读