完成初学者到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
我的字体无法正确加载。
放置客户端浏览器应访问的任何内容 /public/
。您可以使用Laravel辅助函数 public_path
为它构建完整的URL。
https://laravel.com/docs/5.2/helpers#method-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/
。
在 webpack.mix.js
加
mix.copyDirectory('resources/assets/fonts', 'public/fonts');
完整的文档: https://laravel.com/docs/5.5/mix
在CSS中的Laravel 5.4中,我不得不添加 /public
之前 /fonts
它的文件夹工作。 (对于包含在文件中的css)
`@font-face {
font-family: OptimusPrinceps;
src: url('/public/fonts/OptimusPrinceps.tff');
}`
另一种最好的方法是使用 assets()
辅助功能如下。对于这种情况,fonts文件夹应该位于公共目录中。 (对于head标签中的css)
`<style>
@font-face {
font-family: OptimusPrinceps;
src: url('{{asset('/fonts/OptimusPrinceps.tff')}}');
}
</style>`
要在laravel中包含自定义字体时添加public关键字,请添加以下内容:
supose字体路径是公共目录中的css / fonts / proxima-nova-light-59f99460e7b28.otf然后用作
@font-face {
font-family: 'proxima-nova';
font-style: normal;
font-weight: 900;
src: url('../public/css/fonts/proxima-nova-light-59f99460e7b28.otf');
}
所以你可以使用 ../上市/+公共目录中的字体路径。
如果您有任何问题,请告诉我您的字体路径我将为您更新路径。