【发布时间】:2019-01-02 13:47:59
【问题描述】:
我有一个使用 Laravel 和 Vue.js 的项目,并且我使用 scss。我想在我的项目中添加新字体,但我不能这样做。 我创建文件fonts.scss,创建一个带有字体的变量
@font-face {
font-family: "Proxima Nova Bold";
src: url(/Proxima-Nova-Bold.otf);
}
$proxima-nova-bold: 'Proxima Nova Bold', sans-serif;
我有控制台错误GET http://local.{my-domain}/Proxima-Nova-Bold.otf net::ERR_ABORTED
这是我在 Vue 组件中导入 scss 文件的方法
@import '../../../fonts/fonts.scss';
这是我的 laravel 组合
let mix = require('laravel-mix');
mix.copy('resources/assets/images', 'public/images', false)
.js('resources/assets/js/app.js', 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css')
我在哪里犯错了? 或者告诉我如何正确添加字体?
【问题讨论】:
-
你告诉它如何加载字体,你给它一个路径。如果
public/Proxima-Nova-Bold.otf中不存在该文件,则客户端无法请求它。确保确实如此。 -
是的,你是对的。但是我如何才能只在资源中工作,而不是在公共领域工作呢?也许我应该为 webpack 写一些规则?
-
是的。您应该为此使用
file-loader插件。 -
您的前端的确切构建设置是什么?拉拉维尔混合? Vue cli ?普通的 webpack ?对于第一个猜测,我没有看到在 url 中使用绝对路径的任何理由。使用相对路径,如果 webpack 设置正确,它将正确处理解析和捆绑字体。
-
@FrankProvost 我使用 laravel mix。在问题中添加代码sn-p
标签: javascript laravel vue.js sass