【问题标题】:rails3 asset pipeline and file collisionsrails3 资产管道和文件冲突
【发布时间】:2012-03-04 16:20:25
【问题描述】:

我正在将现有的 rails 2 应用程序更新到 rails 3,但在理解资产管道时遇到了一些问题。我已经阅读了guide,据我了解,以下任何目录中的文件都将解析为 /assets:

  • 应用/资产
  • 库/资产
  • 供应商/资产

您可以使用帮助程序访问它们...即

image_tag('logo.png')

但我不明白如何处理碰撞?例如,如果有以下文件怎么办:

  • app/assets/images/logo.png
  • lib/assets/images/logo.png

如果我访问 myapp.com/assets/images/logo.png,会返回哪个文件?我可以在我的应用程序中手动检查冲突,但是当使用依赖于资产管道的 gem 时,这会成为一个痛点。

【问题讨论】:

    标签: ruby-on-rails-3 asset-pipeline


    【解决方案1】:

    根据我的发现,您不能有重复的文件,因为 rails 只会返回找到的第一个。

    这似乎有点设计缺陷,因为 gem 可能没有命名自己的资产

    【讨论】:

    • 我已经通过jquery-rails gem 捆绑了 jQuery。在我的 Rails 项目的一个单独部分中,我想使用由 Bower 获取的不同版本的 jQuery,而不会在项目的其余部分放弃 jquery-rails。有没有办法做到这一点?
    【解决方案2】:

    为什么不利用index manifest 并将您的app/assets 组织成解耦模块?然后,您可以参考特定图像image_tag('admin/logo.png'),并免费获得以更有意义的方式组织的 UI 代码库。您甚至可以将一个复杂的组件(例如单页应用程序)提升到它自己的模块中,并从应用程序的不同部分重用它。

    假设您的应用由三个模块组成:公共端、管理 UI 和(例如)让您的代理跟踪贵公司销售流程的 CRM:

    app/assets/
    ├── coffeescripts
    │   ├── admin
    │   │   ├── components
    │   │   ├── index.coffee
    │   │   └── initializers
    │   ├── application
    │   │   ├── components
    │   │   ├── index.sass
    │   │   └── initializers
    │   └── crm
    │       ├── components
    │       ├── index.sass
    │       └── initializers
    ├── images
    │   ├── admin
    │   ├── application
    │   └── crm
    └── stylesheets
        ├── admin
        │   ├── components
        │   └── index.sass
        ├── application
        │   ├── components
        │   └── index.sass
        └── crm
            ├── components
            └── index.sass
    
    21 directories, 6 files
    

    不要忘记更新您的application.rb,以便正确预编译它们:

      config.assets.precompile = %w(admin.js application.js crm.js 
                                    admin.css application.css crm.css)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      • 2012-07-17
      • 2016-02-09
      相关资源
      最近更新 更多