问题 我在哪里可以在Laravel 5中放置自定义字体?


完成初学者到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

我的字体无法正确加载。


2111
2018-05-01 12:59


起源

你试过用吗? public_path() : laravel.com/docs/5.2/helpers#method-public-path - Angad Dubey
不,我没有,但看起来像一个解决方案。我将如何在我的示例中对其进行编码? - user3818418


答案:


放置客户端浏览器应访问的任何内容 /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/


10
2018-05-01 13:13



我现在唯一的问题就是这个问题: Not allowed to load local resource: file:///E:/MainWeb%20DesignProjectsLore%20Soulspublic/fonts/OptimusPrinceps.tff - user3818418
这是一个浏览器跨站点利用问题,而不是Laravel问题。您正在通过不允许浏览器加载自己资源的URL访问您的应用程序。 - Jim
您可以将字体放在公用文件夹中 - d3cypher


webpack.mix.js 加

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

完整的文档: https://laravel.com/docs/5.5/mix


3
2018-01-16 09:57





在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>`

2
2017-08-02 09:25





要在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');
}

所以你可以使用 ../上市/+公共目录中的字体路径。 如果您有任何问题,请告诉我您的字体路径我将为您更新路径。


1
2017-11-03 11:20