1

由于 rails 3 和 compass 框架存在一些 heroku 问题,我们遵循了本指南:

http://lds.li/post/673242899/compass-with-rails-3-on-heroku

并将我们的样式表移动到 app_name/tmp/stylesheets。

我尝试使用

stylesheet_link_tag "#{Rails.root}/tmp/stylesheets/main.css"

但这不起作用,因为它在其中查找 css 文件

http://localhost:3000/app_name/tmp/stylesheets/main.css

我知道这是一个简单的解决方法,我忽略了一些简单的事情,但希望有人可以一眼就回答这个问题。提前致谢!

我想指出,我们的 stylesheets.rb 中有这个

Rails.configuration.middleware.insert_before('Rack::Sendfile', 'Rack::Static',
                                         :urls => ['/stylesheets/compiled'],
                                         :root => "#{Rails.root}/tmp")

当我尝试“指南针手表”时,它仍然编译为“tmp/stylesheets/main.css”而不是样式表/编译。

4

2 回答 2

3

我个人采取不同的方法来解决这个问题:

将以下代码粘贴到您的指南针初始化程序中:

Sass::Plugin.options[:never_update] = true

这可以防止 sass 在服务器被击中时尝试写入文件系统。

只需确保您在开发模式下运行compass watch并将编译的样式表提交到您的 git repo

这节省了很多时间 - 如果您不喜欢这种方法,请尝试麻烦最近的分叉之一

于 2010-08-29T01:38:00.870 回答
1

更改您config/compass.rb的设置css_dir = "tmp/stylesheets/compiled"

根据您在配置中的内容,您应该将其用于您的模板:

stylesheet_link_tag "compiled/main.css"

(呈现<link rel="/stylesheets/compiled/main.css" ...

tmp目录在 之外public;它不应该出现在 URL 中,因为中间件正在处理重新映射它。)

于 2010-08-27T20:38:10.287 回答