webpack 2 및 vue-cli를 사용하여 로컬 글꼴로 로드
vue-cli 웹 팩 템플릿을 사용하고 있으며 프로젝트에서 로컬 글꼴로 로드하려고 합니다.글꼴 경로를 올바르게 알 수 없습니다.내 경로는 어떻게 보여야 할까요?
제가 잘못하고 있는 것에 대한 정보를 찾았지만, 알 수 없었습니다.https://github.com/webpack-contrib/sass-loader#problems-with-url
파일 구조:
내 _fonts.scss에서:
// Webfont: LatoLatin-Regular
@font-face {
font-family: 'LatoLatinWeb';
src: url('../assets/fonts/LatoLatin-Regular.eot'); /* IE9 Compat Modes */
src: url('../assets/fonts/LatoLatin-Regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../assets/fonts/LatoLatin-Regular.woff2') format('woff2'), /* Modern Browsers */
url('../assets/fonts/LatoLatin-Regular.woff') format('woff'), /* Modern Browsers */
url('../assets/fonts/LatoLatin-Regular.ttf') format('truetype');
font-style: normal;
font-weight: normal;
text-rendering: optimizeLegibility;
}
Webpack.base.config.sj:
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
}
}
Utils.js:
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass').concat(
{
loader: 'sass-resources-loader',
options: {
resources: path.resolve(__dirname, '../src/styles/_variables.scss')
}
}
).concat(
{
loader: 'sass-resources-loader',
options: {
resources: path.resolve(__dirname, '../src/styles/mixins/_mixins.scss')
}
}
).concat(
{
loader: 'sass-resources-loader',
options: {
resources: path.resolve(__dirname, '../src/styles/_fonts.scss')
}
}
),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
vue-cli 웹 팩 템플릿을 사용하여 로컬 글꼴을 로딩하려면 어떻게 해야 합니까?
글꼴을 다음과 같이 Import합니다.
$font_path: '~@/assets/fonts/';
// *********** //
// SOURCE SANS //
// ITALIC
@font-face{
font-family : 'Source Sans Pro';
src : url($font_path +'SourceSansPro-Italic.eot'); /* IE9 Compat; Modes */
src : url($font_path +'SourceSansPro-Italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url($font_path +'SourceSansPro-Italic.woff2') format('woff2'), /* Modern Browsers */ url($font_path +'SourceSansPro-Italic.woff') format('woff'); /* Modern Browsers */
font-style : italic, oblique;
font-weight : 400;
text-rendering : optimizeLegibility;
}
// REGULAR
@font-face{
font-family : 'Source Sans Pro';
src : url($font_path +'SourceSansPro-Regular.eot'); /* IE9 Compat; Modes */
src : url($font_path +'SourceSansPro-Regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url($font_path +'SourceSansPro-Regular.woff2') format('woff2'), /* Modern Browsers */ url($font_path +'SourceSansPro-Regular.woff') format('woff'); /* Modern Browsers */
font-style : normal;
font-weight : 400;
text-rendering : optimizeLegibility;
}
// SEMI BOLD
@font-face{
font-family : 'Source Sans Pro';
src : url($font_path +'SourceSansPro-Semibold.eot'); /* IE9 Compat; Modes */
src : url($font_path +'SourceSansPro-Semibold.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url($font_path +'SourceSansPro-Semibold.woff2') format('woff2'), /* Modern Browsers */ url($font_path +'SourceSansPro-Semibold.woff') format('woff'); /* Modern Browsers */
font-style : normal;
font-weight : 600;
text-rendering : optimizeLegibility;
}
// Use "font-family: $source_sans_pro" in your code.
$source_sans_pro : 'Source Sans Pro', sans-serif;
// [END] SOURCE SANS //
// ***************** //
모든 글꼴은 다음 위치에 있습니다.src/assets/fonts/
나의webpack.base.conf
파일에 다음 로더가 포함되어 있습니다.
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
}
},
제가 하고 있는 vuejs 프로젝트에서
이것은 동작하지 않았습니다.
@font-face {
font-family: 'name-of-choice';
src: url("~@/assets/<location-to-your-font-file>/font-file-name.ttf") format('font-type');
}
이것은 효과가 있었다:
@font-face {
font-family: 'name-of-choice';
src: url(~@/assets/<location-to-your-font-file>/font-file-name.ttf) format('font-type');
}
그리고 이중 따옴표를 사용하지 않고 솔루션을 한 번 사용한 후 이중 따옴표를 추가하면 다시 작동한다는 것을 알게 되었습니다.여기서 무슨 일이 일어나고 있는지 아는 사람이 있으면 대답해 주세요.
솔루션:URL 문자열을 따옴표로 묶지 마십시오.
언급URL : https://stackoverflow.com/questions/45760741/loading-in-local-fonts-with-webpack-2-and-the-vue-cli
'programing' 카테고리의 다른 글
JavaBeans가 사용되는 장소? (0) | 2022.08.09 |
---|---|
javac 옵션: 지정된 디렉토리 아래에 있는 모든 Java 파일을 재귀적으로 컴파일합니다. (0) | 2022.08.09 |
Java에서 Integer와 int의 차이점은 무엇입니까? (0) | 2022.08.09 |
커스텀 입력 Vue 컴포넌트를 테스트하는 방법 (0) | 2022.08.09 |
String on String Literals의 intern 메서드는 언제 사용해야 합니까? (0) | 2022.08.09 |