加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 添加字体后,Heroku Rails资产管道无法预编译

发布时间:2020-12-17 03:36:56 所属栏目:百科 来源:网络整理
导读:我正在尝试在我的Rails应用程序中添加一个字体,这就是我所做的: 添加字体到: -app--assets---fonts SCSS: @font-face { font-family: LigatureSymbols; src: font-url('LigatureSymbols211.eot'); src: local('LigatureSymbols'),font-url('LigatureSymbo
我正在尝试在我的Rails应用程序中添加一个字体,这就是我所做的:

添加字体到:

-app
--assets
---fonts

SCSS:

@font-face {
  font-family: LigatureSymbols;

  src: font-url('LigatureSymbols211.eot');
  src: local('LigatureSymbols'),font-url('LigatureSymbols211.eot?#iefix') format('embedded-opentype'),font-url('LigatureSymbols211.woff') format('woff'),font-url('LigatureSymbols211.ttf') format('truetype'),font-url('LigatureSymbols211.svg#LigatureSymbols') format('svg');

  font-weight: normal;
  font-style: normal;
}

production.rb:

config.assets.paths << Rails.root.join('app','assets','fonts')
config.assets.precompile += %w( .svg .eot .woff .ttf )

但当我推送到我的Heroku生产服务器时,我得到了这个:

-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       I,[2013-05-06T06:21:07.804043 #2036]  INFO -- : Writing /tmp/build_2snusxy9gm4d7/public/assets/LigatureSymbols211-c5b7db18fa0fcd910e92fee751776047.eot
       I,[2013-05-06T06:21:07.809822 #2036]  INFO -- : Writing /tmp/build_2snusxy9gm4d7/public/assets/LigatureSymbols211-09ff8be41a6bee98c834e9a278bb8b28.otf
       I,[2013-05-06T06:21:07.812685 #2036]  INFO -- : Writing /tmp/build_2snusxy9gm4d7/public/assets/LigatureSymbols211-1f682b1be252dbf6182d606a185b603f.svg
       I,[2013-05-06T06:21:07.819262 #2036]  INFO -- : Writing /tmp/build_2snusxy9gm4d7/public/assets/LigatureSymbols211-9e88765b872185b22e519da056cba9f0.ttf
       I,[2013-05-06T06:21:07.829518 #2036]  INFO -- : Writing /tmp/build_2snusxy9gm4d7/public/assets/LigatureSymbols211-a2d90ca6deff46bfcf9cade63d4902ce.woff
       I,[2013-05-06T06:21:07.838351 #2036]  INFO -- : Writing /tmp/build_2snusxy9gm4d7/public/assets/rails-5f9b3f343d9831cbf50b9bc980faf39b.png
       I,[2013-05-06T06:21:17.072501 #2036]  INFO -- : Writing /tmp/build_2snusxy9gm4d7/public/assets/application-6af5b81b9fcc820f1d43b4135f00317e.js
       rake aborted!
       undefined method `[]' for nil:NilClass
       (in /tmp/build_2snusxy9gm4d7/app/assets/stylesheets/application.css)

我试图在我的application.css中添加一个必需的行,但这也行不通.

编辑:

运行服务器时,我可以在我的开发机器上访问localhost:5000 / assets / LigatureSymbols-2.11.eot.不确定这是否有助于缩小出错的范围

编辑2:

该代码适用于SCSS字体注释掉,是否存在语法错误?

编辑3:

这是跟踪堆栈的顶部:

.../sprockets-2.9.2/lib/sprockets/sass_functions.rb:63:in `sprockets_context'
.../sprockets-2.9.2/lib/sprockets/sass_functions.rb:42:in `font_url'

我的font-url调用有问题吗?

编辑4:

从字体文件名中删除破折号并更改scss以反映,但同样的错误仍然存??在

编辑5:

在本地机器上生成CSS:

@font-face {
  font-family: LigatureSymbols;
  src: font-url("LigatureSymbols211.eot");
  src: local("LigatureSymbols"),font-url("LigatureSymbols211.eot?#iefix") format("embedded-opentype"),font-url("LigatureSymbols211.woff") format("woff"),font-url("LigatureSymbols211.ttf") format("truetype"),font-url("LigatureSymbols211.svg#LigatureSymbols") format("svg");
  font-weight: normal;
  font-style: normal; }

解决方法

我发现了!最奇怪的事情……可能是SASS中的一个错误.

如果我将代码直接放在我的application.css中需要的home.css.scss文件中,则会发生错误.

另外,如果我将字体SCSS放在一个单独的文件(font.scss)和@import“font”中,它也会引发错误.

只有当我在application.css中需要font.scss文件时,资产管道才会通过.

如果我使用font-url(…)vs asset-url(…,font)vs url(asset-path(…,font))它们都可以正常工作在application.css中a = require

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读