【问题标题】:Configuring Rails Asset Pipeline in dev and production在开发和生产中配置 Rails 资产管道
【发布时间】:2012-07-25 03:12:04
【问题描述】:

我仍然不太确定使用 rails 资产管道的最佳实践。在 Rails 框架项目中,application.html.erb 包含以下代码:

<head>
  <title>My title</title>
  <%= stylesheet_link_tag "scaffolds" %>
  <%= stylesheet_link_tag "depot", media: "all"  %>
  <%= stylesheet_link_tag "application", media: "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
</head>

现在正在开发中,所有 js 和 css 都可以正常提供。但是在生产中,在预编译所有资产(js和css)之后,我只需要application.css和application.js,因为scaffolds.css和depot.css在application.css中是连接的。所以在生产中不再需要scaffolds.css 和depot.css。

我怎样才能在开发和生产中拥有上述代码,让资产管道知道某些资产已在 application.css/js 中连接,然后删除代码中的那些资产链接标签?

如果这不可能,我应该如何避免加载冗余资源并保持产品部署的可管理性? (意味着在生产中不手动删除链接标签)

谢谢。

【问题讨论】:

    标签: ruby-on-rails asset-pipeline


    【解决方案1】:

    你不放

    <%= stylesheet_link_tag "scaffolds" %>
    <%= stylesheet_link_tag "depot", media: "all"  %>
    <%= stylesheet_link_tag "application", media: "all" %>
    

    在您的布局文件中。你只放

    <%= stylesheet_link_tag "application", media: "all" %>
    

    config/environment/development.rb 中,你确保你有

    config.assets.debug = true
    

    config.assets.debug 设置为true 时,它将在开发模式下为application.css 文件的Sprockets 指令中所需的每个资产自动为每个样式表生成&lt;link ... /&gt; 标签。

    config/environment/production.rbconfig.assets.debug 默认为false,导致资产被连接到一个application.css 文件中(再次假设您的//= require 行在application.css 中是正确的)。这将导致在生产中仅为 application.css 创建 1 链接标记。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      • 2012-02-04
      • 1970-01-01
      • 2016-01-24
      • 1970-01-01
      • 2013-12-02
      • 2013-05-08
      相关资源
      最近更新 更多