【问题标题】:Padrino, compass and heroku's read-only file-systemPadrino、compass 和 heroku 的只读文件系统
【发布时间】:2011-03-25 00:41:25
【问题描述】:

我真的很喜欢 padrino 使用指南针“正常工作”的方式,但我有几个问题,因为我将使用 heroku(以及他们的 只读文件系统) 用于托管

  1. 从外观上看,padrino/compass 组合仅在对 sass 文件进行了更改并且用户访问服务器时才编译 sass。 这是真的吗?

  2. 如果是这样,那么我是否正确地认为,一旦应用程序处于生产模式,我就不必担心 compass 尝试写入文件系统,因为我不会对我的 sass 文件在服务器上的时候?

  3. 除了对 sass 文件进行更改之外,是否还有其他情况会导致 padrino/compass 写入文件系统?

  4. 如果我在问题 2 中所做的假设是错误的,那么如何防止 padrino/compass 写入文件系统?

Nathan Weizenbaum(Sass 成名)advised me 在结合 sinatra、sass、compass 和 heroku 时使用 Sass::Plugin::Rack,但经过深思熟虑,我决定最好的选择(至少满足我的需要) 是为了防止 sass 通过链接到我的静态 css 文件而不在我的路由中调用 sass 来进行任何类型的服务器端编译

我注意到 compass_plugin.rb(由 padrino 生成器创建)需要“Sass:Plugin::Rack”

我要到明天晚上才能推送到 heroku,所以我试图提前了解我可能遇到的任何问题

[我会在 padrino 邮件中问同样的问题]

【问题讨论】:

    标签: ruby heroku compass-sass padrino


    【解决方案1】:

    Heroku 最近发布了一篇名为 Using Compass on Heroku 的博文,鼓励用户使用 tmp 目录来编译样式表。

    【讨论】:

    • 我非常想知道如何将文件写入/tmp。不过,所有说明都是针对导轨的。
    【解决方案2】:

    padrino mailing 列表中找到了解决此问题的答案

    if Padrino.env == :production
       Sass::Plugin.options[:never_update] = true
    end
    
    # right before
    Compass.configure_sass_plugin!
    Compass.handle_configuration_change! 
    

    对我有用

    【讨论】:

      【解决方案3】:

      我有一个使用 Rails 和 Compass 的新项目,每次我推送到 heroku 时,似乎 compass 确实 尝试写入文件系统。每次更新后我访问该页面时都会收到“我们很抱歉,但出现问题”警告。

      尽管所有 css 文件都应该已经存在,但还是会发生这种情况。路过很奇怪。

      【讨论】:

      • 是的,我也遇到了这个问题。但是请参阅公认的答案以了解解决此问题的方法-它也可以在 Rails 中使用(稍作修改)
      猜你喜欢
      • 1970-01-01
      • 2010-12-22
      • 2013-07-16
      • 1970-01-01
      • 2015-04-11
      • 2018-10-05
      • 2018-04-10
      • 2012-03-11
      相关资源
      最近更新 更多