как включить таблицу стилей в корневую папку rails 3 - PullRequest
1 голос
/ 27 августа 2010

Из-за некоторых проблем с героем рельсов 3 и компаса, мы следовали этому руководству:

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

Я знаю, что это простое исправление, и я пропускаю что-то простое, но, надеюсь, кто-то ответит на это одним взглядом. Заранее спасибо!

Я хотел бы отметить, что у нас это есть в наших таблицах стилей.rb

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

Когда я пытаюсь "смотреть компас", он все равно компилируется в "tmp / stylesheets / main.css" вместо таблиц стилей / скомпилированных.

Ответы [ 2 ]

3 голосов
/ 29 августа 2010

Я лично придерживаюсь другого подхода к решению этой проблемы:

Вставьте следующий код в инициализатор компаса:

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

Это предотвращает попытку записи sass в вашу файловую систему при попадании на сервер.

Просто убедитесь, что вы запускаете Compass Watch в режиме разработки и передайте скомпилированные таблицы стилей в yout git repo

Это экономит так много времени - если вам не нравится этот подход, попробуйте hassle или одну из недавних вилок

1 голос
/ 28 августа 2010

Измените config/compass.rb на css_dir = "tmp/stylesheets/compiled"

Исходя из того, что у вас есть в вашей конфигурации, вы должны использовать это для вашего шаблона:

stylesheet_link_tag "compiled/main.css"

(что делает <link rel="/stylesheets/compiled/main.css" ...)

(tmp dir находится за пределами public; он не должен появляться в URL-адресах, поскольку промежуточное ПО позаботится о его переназначении.)

...