我希望这个问题不会重复,但我找不到类似的问题。
我想在我网站的子文件夹下的 IIS 上托管我的 React 应用程序。我已经homepage
设置package.json
{
"homepage": "/MyApp"
}
我的应用程序运行良好,但是,我的 SCSS 有一个问题:我的public/fonts
文件夹和public/images
文件夹是从网站根文件夹中获取的,而不是在 MyApp 子文件夹中
从网站根目录
http://myhost.com/fonts/MavenPro-Regular.ttf
http://myhost.com/images/myIcon.png
不是我的预期
http://myhost.com/MyApp/fonts/MavenPro-Regular.ttf
http://myhost.com/MyApp/images/myIcon.png
我正在使用
create-react-app
,顶级组件App.jsx
导入App.scss
import './App.scss';
在App.scss
,像这样导入variables.scss
:
@import "./themes/generated/variables.base.scss";
.my-icon-class {
background: url('/images/myIcon.png') no-repeat;
background-size: contain;
}
......
在中variables.scss
,我有一个字体变量,它的 src 指向fonts
位于public\fonts
和 CSS 类背景中的文件夹: URL()
@font-face {
font-family: 'MavenPro-Regular';
src: url('/fonts/MavenPro-Regular.ttf');
font-weight: 400;
font-style: normal;
}
有什么我想念的吗?PUBLIC_URL
我可以在 SCSS 中使用变量吗?同事告诉我将字体和图像文件夹移动到src
文件夹中,然后将所有 URL 从更改为URL('/fonts/...')
,URL('fonts/...')
但我认为这可能不是一个好的结构(或者我错了?)。我希望找出我的设置有什么问题。谢谢。