Настроить Compass в рамках проекта CakePHP - PullRequest
1 голос
/ 01 февраля 2010

Я изучал Compass, и чем больше я смотрю, тем больше похоже на то, как должен быть написан CSS. В качестве тестового примера я хотел бы использовать его в одном из моих проектов CakePHP. К сожалению, у меня возникли некоторые проблемы с начальной конфигурацией. В частности, с получением ресурсов в нужном месте и правильной ссылкой в ​​скомпилированном CSS.

Я создаю :stand_alone проект в моей директории /app. Ну, это то, что я хочу сделать. Компас, похоже, не такой. При создании проекта я сказал ему, куда поместить css, images и js, и эти ресурсы, по сути, делают его в правильном каталоге. К сожалению, из-за того, что я не создаю каталог в webroot, ссылки на ресурсы неправильно компилируются.

Я создаю проект Compass в моем каталоге CakePHP app/ с помощью этой команды:

$ compass -f blueprint --sass-dir sass --css-dir webroot/css/ --images-dir webroot/img/ --javascripts-dir webroot/js/ --output-style compact .

Скомпилированный CSS, тем не менее, хочет ссылаться на showgrid.png изображение Blueprint как:

url('/webroot/img/grid.png?1264969358')

Полагаю, это довольно предсказуемый результат, но я не могу понять, как заставить скомпилированный CSS ссылаться на правильный путь /img/grid.png?whatever. Это вообще возможно? Я вынужден создать свой проект Compass прямо в моем webroot?

Спасибо.

UPDATE

Содержимое моего config.rb файла:

# Require any additional compass plugins here.
project_type = :stand_alone
# Set this to the root of your project when deployed:
http_path = "/"
css_dir = "webroot/css"
sass_dir = "sass"
images_dir = "webroot/img"
http_images_path = "/img"
javascripts_dir = "webroot/js"
output_style = :compact

Ответы [ 2 ]

1 голос
/ 02 февраля 2010

Запуск Compass v0.10 и использование следующей конфигурации:

# Require any additional compass plugins here.
# Set this to the root of your project when deployed:
http_path = "/"
sass_dir = "sass"
css_dir = "webroot/css"
images_dir = "webroot/images"
javascripts_dir = "webroot/js"
http_stylesheets_dir = "css"
http_javascripts_dir = 'js'
http_images_dir = 'images'
# To enable relative paths to assets via compass helper functions. Uncomment:
# relative_assets = true

обеспечивает ожидаемые результаты.

Компас v0.10 скоро будет выпущен, вы можете установить его с:

(sudo) gem install compass --pre

Чтобы создать проект с использованием этой конфигурации:

  1. Создать каталог проекта
  2. Сохраните конфигурацию в config.rb в каталоге проекта.
  3. В каталоге вашего проекта выполните команду: compass install blueprint
1 голос
/ 02 февраля 2010

Rails и другие фреймворки имеют файлы sass и конфигурацию в корне проекта, вне общедоступного webroot. Таким же образом должен работать автономный проект.

Используете ли вы image_url() для ссылки на изображение?

В вашем файле compass.config вы можете установить http_images_path, если он отличается от вашего пути к каталогу. См. страницу конфигурации в вики для получения более подробной информации.

...