首页 文章

在Rails 3.1中添加新的资产路径

提问于
浏览
78

有谁知道如何在Rails 3.1中向资产管道添加另一个文件夹?

我想以 app/assets/images 服务 app/assets/images 服务 app/assets/fonts .


Update: 5-7-2013

只是为将来发现此问题以明确添加资产路径的人添加一些说明,在application.rb文件中:

config.assets.paths << "#{Rails.root}/app/assets/fonts"

但是,由于上面的路径在 app/assets 之下,你不必明确地添加它,你只需要重新启动rails应用程序,这样Sprockets就可以把它拿起来 .

您将必须显式添加 app/assetslib/assetsvendor/assets 之外的路径,并且只记得当Sprockets在您的应用程序加载时在文件夹中拾取新文件时,根据我的经验,它不会拾取新的文件夹 . 没有重启的资产路径 .

6 回答

  • 1

    安德鲁, app/assets/fonts 实际上已经在您的资产加载路径中,以及 images . 因此,您可以以相同的方式指向资产: <%= asset_path('/Ubuntu/Ubuntu-R-webfont.eot') %> [1]或者您如何引用图像 .

    我花了一些时间来围绕这个问题 . 我仍然在 app/assets/fontsapp/assets/images 中使用了相同名称的文件't know what happens if there' .

    [1]假设你有一个字体 app/assets/fonts/Ubuntu/Ubuntu-R-webfont.eot

  • 2

    安德鲁,杰森同意了 . FWIW我把它放在我的config / application.rb旁边

    # Enable the asset pipeline
    config.assets.enabled = true
    config.assets.paths << "#{Rails.root}/app/assets/fonts"
    
  • 74

    通过创建 app/assets/imagesapp/assets/fonts ,它们将自动添加到资产路径中 .

    创建后打开rails控制台并检查:

    y Rails.application.config.assets.paths
    

    yyaml 方法的快捷方式)

  • 8

    它可以在不添加路径的情况下工作,但请注意您使用的是资产的有效文件名 .

    url("#{asset_path 'fontawesome-webfont.eot'}?#iefix") format('embedded-opentype'),
    ...
    url("#{asset_path 'fontawesome-webfont.svg'}#FontAwesome") format('svg');
    

    例如,在这种情况下,请将 ?#iefix 留在字体文件名之外

  • 3

    我可以确认它的工作原理没有在Rails 3.1.0.rc4中添加配置的新路径(并且假定更高) . 我蹦了我的服务器,你也可以这样做 .

  • 43

    创建 assets/fonts 文件夹并在其上添加一些字体,并在css文件中使用主题,如下所示

    @font-face {
      font-family: Sawasdee;
      src: url(Sawasdee.ttf);
    }
    

相关问题