【问题标题】:Best way to generate a static CSS file with Rails使用 Rails 生成静态 CSS 文件的最佳方法
【发布时间】:2013-02-17 08:00:28
【问题描述】:

我是 Rails 新手,我正在为一些练习创建一个应用程序,用于保存 CSS sn-ps。现在,我有一个 Entries 的 mvc 设置,我可以在其中完成所有典型的 crud 工作。给条目一个标题、描述和一个 css sn-p。我想使用我保存在数据库中每个条目中的 css sn-ps 来创建一个包含所有 sn-ps 的样式表,以便用户能够下载。最后,我想提供这个样式表的 CSS、LESS 和 SASS 版本,这样您就可以选择自己的风格进行下载。更进一步,我希望用户能够在他们下载的文件的 CSS/Less/Sass 版本的下载中自定义哪些 sn-ps,甚至是所有 3 个文件的 zip。

我被挂断的部分是何时以及如何生成文件的方法。为了简单起见,我可以从 CSS 文件开始,然后将这些知识应用到创建 Less 和 Sass 版本,但如果你也有这方面的提示,那就太好了。

这个问题的答案让我对 Sass:Engine 有了一些了解,但我无法从中获得完整的答案。 Convert SASS to CSS using SASS gem

【问题讨论】:

    标签: css ruby-on-rails ruby sass less


    【解决方案1】:

    使用 Rails,您不仅限于呈现 HTML。您可以提供自己的视图,将上下文呈现为 text/css,并且文件将由浏览器显示。

    如果你想内联渲染它,你可以这样做:

    def test_css_download
      css = "body { font-family: Arial; }"
      render :text => css, :content_type => "text/css"
    end
    

    如果您想让他们将其作为文件下载,您可以像这样使用send_data

    def test_css_download
      css = "body { font-family: Arial; }"
      send_data css, :filename => "styles.css", :type => "text/css", :disposition => "attachment"
    end
    

    当您访问此路由时,浏览器会将内容下载为文件。

    【讨论】:

    • 这对我来说很有意义。我要试试这个。因此,理论上,其他人是否可以使用
    • 我在视图目录中创建了一个 styles.css.erb 文件,我可以使用 my_app/styles.css 以这种方式链接到它。这是完美的。谢谢您的帮助!我将针对提供 Less 和 Sass 版本的细节提出新问题。
    • 一个建议,现在我正在考虑,是认真考虑在某处缓存呈现的 CSS(例如文件或使用 memcached)。没有这个,任何链接到此的页面刷新实际上都是在您的站点上发出数据库查询。这可能很快就会变得不可持续:)
    • 好的,我会找一个教程。再次感谢!
    • 如果必须在整个站点中提供 css 文件,这似乎不是一个好主意。关于如何缓存文件有什么建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    相关资源
    最近更新 更多