Используйте sprockets 2.0 как в локальной, так и в prod (php) средах с минимальными проблемами

#php #development-environment #command-line-interface #sprockets #lithium

#php #среда разработки #интерфейс командной строки #sprockets #литий

Вопрос:

Хотя я признаю, что обработка зависимостей sprockets потрясающая, у меня мало знаний о том, как правильно ее использовать, чтобы она соответствовала моим потребностям. На самом деле я работаю над приложением php 5.3 (на базе lithium framework # li3), и я начинаю разработку общедоступного файла javascript, предназначенного для отправки запросов на наши серверы и создания фрагментов DOM с результатами. В принципе, я готов организовать свои исходные тексты в модулях, каждый из которых посвящен одной задаче (ajax-запрос, синтаксический анализ json, генерация DOM и т. Д.), И Чувствую желание использовать sprockets.

НО как sprockets можно было бы красиво и каким-то образом прозрачно интегрировать в мой рабочий процесс (я хочу избегать задач CLI каждый раз, когда я изменяю один из своих файлов) в моей локальной среде. ?

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

Вы сталкивались с теми же проблемами? Как это можно решить? Спасибо

Комментарии:

1. Ну, тогда вы должны автоматически создавать свое программное обеспечение. Просто запустите сборку, и ваша локальная среда готова к запуску.

Ответ №1:

Обычно в локальной среде вы запускаете sprockets как веб-сервер. Как правило, это предполагает добавление config.ru файла в ваше приложение с чем-то вроде

 require 'sprockets'
map '/assets' do
  environment = Sprockets::Environment.new
  environment.append_path 'app/assets/javascripts'
  environment.append_path 'app/assets/stylesheets'
  run environment
end
  

и запустите его с rackup config.ru помощью . Это должно перезагружать ваши ресурсы каждый раз, когда вы их меняете.

Комментарии:

1. Пожалуйста, поделитесь со мной, но ruby facts and figures еще не мой мир. Мне нужно немного больше информации: каждый раз, когда я хочу, чтобы мои ресурсы были скомпилированы, я должен запускать rakup? Параметр map «связывает» все, что проходит через «активы», будет ускорено?

2. Нет. Когда вы запустите rackup, он запустит сервер, который будет обслуживать ваши ресурсы на localhost:SOME_PORT/assets . То, где ваши ресурсы фактически сохраняются, определяется append_path вызовами (в данном случае ‘app / assets / javascripts’ и ‘app / assets / stylesheets’). Сервер должен автоматически перекомпилировать ваши ресурсы каждый раз, когда они запрашиваются (некоторое кэширование происходит, но вам не нужно об этом беспокоиться).

3. Есть ли шанс найти что-нибудь (я имею в виду учебник) о параллельном запуске rack и apache? Если apache потребует один из файлов ресурсов, rack возьмет на себя и обработает этот запрос?

4. Я не знаю. Я сам не использую Apache. Я думаю, что поиск в Google о passenger может вам помочь.

5. @pixelboy с Ruby вы используете сервер приложений, такой как passenger или thin (для обслуживания приложений в стойке), а apache используется только для настройки того, где работает сервер приложений, когда кто-то переходит в ваш домен.