2

标题基本概括了所有内容...

我尝试/app/assets/fonts/font.woff从我的 css 文件中添加和引用它,/app/assets/fonts/font.woff但它似乎不起作用。

有任何想法吗?

4

2 回答 2

7

事实证明,@JimLim 提到的资产管道在 Rails 4 中的工作方式略有不同。完整文档在这里,但这里是相关摘录:

2 如何使用资产管道

在以前的 Rails 版本中,所有资产都位于公共的子目录中,例如图像、javascript 和样式表。使用资产管道,这些资产的首选位置现在是 app/assets 目录。此目录中的文件由 Sprockets 中间件提供服务。

资产仍然可以放置在公共层次结构中。公共下的任何资产都将由应用程序或 Web 服务器作为静态文件提供。您应该将 app/assets 用于在提供之前必须经过一些预处理的文件。

在生产环境中,Rails 默认将这些文件预编译为 public/assets。然后,Web 服务器将预编译的副本作为静态资产提供。app/assets 中的文件永远不会直接在生产环境中提供。

所以我最终将我的 /fonts 目录移动到 /public 中,并相应地调整了@font-face 声明中的路径,一切正常。

于 2013-08-27T15:11:08.117 回答
3

您必须告诉 Rails 在资产管道中包含您的字体目录,如下所示:

config.assets.paths << Rails.root.join('app', 'assets', 'fonts')

最后,让 Rails 为您找出正确的路径,这样您就不必弄乱前缀app等。为您的 css/scss 文件app/assets添加扩展名,例如,并使用嵌入式 ruby​​:.erb application.css.erb

src: url("<%= asset_path('fonts.woff') %>");

相关问题

于 2013-08-16T21:51:06.150 回答