在 Laravel 5 中,我应该在哪里放置自定义字体?

2022-08-30 14:50:12

完成Laravel 5的初学者,并尝试在我的标题中使用此代码导入自定义字体:

<style>
@font-face {
    font-family: 'Conv_OptimusPrinceps';
    src: url('fonts/OptimusPrinceps.eot');
    src: local('☺'), url('fonts/OptimusPrinceps.woff') format('woff'), url('fonts/OptimusPrinceps.ttf') format('truetype'), url('fonts/OptimusPrinceps.svg') format('svg');
    font-weight: normal;
    font-style: normal;
}

并在我的 variables.scss 中调用它。目前,我的字体存储在我的公共目录中:

public/fonts/OptimusPrinceps.woff
public/fonts/OptimusPrinceps.tff 
etc.

由于某种原因,此警告出现在我的开发工具中

Failed to decode downloaded font: http://localhost:3000/fonts/OptimusPrinceps.tff
OTS parsing error: invalid version tag

我的字体无法正确加载。


答案 1

将客户端浏览器应访问的任何内容放入 。您可以使用 Laravel 帮助程序函数为其构建完整的 URL。
https://laravel.com/docs/5.2/helpers#method-public-path/public/public_path

例如,如果您将字体放入(您已经完成了),则可以通过以下两种方式之一访问它。/public/fonts/OptimusPrinceps.tff

在刀片中:

<style type="text/css">
@font-face {
    font-family: OptimusPrinceps;
    src: url('{{ public_path('fonts/OptimusPrinceps.tff') }}');
}
</style>

在 CSS 中包括:

@font-face {
    font-family: OptimusPrinceps;
    src: url('/fonts/OptimusPrinceps.tff');
}

在第二个例子中,你不需要任何Laravel魔法,真的。只需绝对引用路径,使其指向正确的目录。

值得注意的是,这适用于Bootstrap和SCSS。我通常把字体放在./public/static/fonts/


答案 2

在添加中webpack.mix.js

mix.copyDirectory('resources/assets/fonts', 'public/fonts');

完整文档在这里: https://laravel.com/docs/5.5/mix


推荐