【问题标题】:stylesheet_link_tag :all with asset pipelinestylesheet_link_tag :all with assets pipeline
【发布时间】:2013-06-24 16:50:09
【问题描述】:

我正在尝试将最初在 rails 3.0 中完成的项目升级到 rails 3.1,并且我想启用资产管道。作为一个 rails 3.0 项目,它使用 public/ 文件夹来存储 css js 和图像文件。我发现有些观点有

<%= stylesheet_link_tag :all %>

在其中,如果没有资产管道,这将导致所有css 文件包含在public/stylesheets 中。

使用资产管道是否有任何等价物,包括 app/assets/stylesheets 中的所有内容?或者只是所有的asset/stylesheets 目录?或者,如果有更多 rails3.1 方式 可以做到这一点,我也完全愿意。我只是想找到升级这个项目的正确方法。

【问题讨论】:

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


    【解决方案1】:

    默认情况下,资产管道在 app/assets/stylesheets 中包含您的样式。来自指南:http://guides.rubyonrails.org/asset_pipeline.html

    从 3.1 版本开始,Rails 默认连接所有 JavaScript 文件合并为一个主 .js 文件,所有 CSS 文件合并为一个 主 .css 文件。正如您将在本指南后面了解到的那样,您可以 自定义此策略以您喜欢的任何方式对文件进行分组。在 生产时,Rails 会在每个文件名中插入一个 MD5 指纹,因此 该文件已被 Web 浏览器缓存。您可以使 通过更改此指纹进行缓存,这会自动发生 每当您更改文件内容时..

    在您的 /app/assets/stylesheets 目录中,您应该有一个名为 application.css 的文件(注意纯 css 扩展名),其中应包含以下内容:

    /*
     * This is a manifest file that'll be compiled into application.css, which will include all the files
     * listed below.
     *
     * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
     * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
     *
     * You're free to add application-wide styles to this file and they'll appear at the top of the
     * compiled file, but it's generally better to create a new file per style scope.
     *
     *= require_self
     *= require_tree .
     */
    

    还请注意,它应该全部注释掉,这是 Rails 读取它的方式。

    【讨论】:

    • 那么我应该在视图中包含"application" 吗?
    • 您的/app/views/layout/application.html.erb 文件应包含在标题中: "all" %>
    猜你喜欢
    • 2013-09-09
    • 2012-02-08
    • 1970-01-01
    • 2017-10-04
    • 2014-10-25
    • 2021-06-13
    • 2013-04-05
    • 2017-07-05
    • 1970-01-01
    相关资源
    最近更新 更多