Как в Синатре указать папки для других шаблонизаторов? - PullRequest
1 голос
/ 11 декабря 2011

У меня есть небольшое приложение со структурой папок, похожей на такую.

MyApp
  +--public
    +--javascripts
    +--stylesheets
  +--specs
  +--views

В документе sinatra указано, как использовать функцию помощников find_templates, чтобы иметь возможность изменять пути поиска для различных механизмов.

set :views, :coffee => 'public/javascripts', :sass => 'public/stylesheets', :default => 'views'

helpers do
  def find_template(views, name, engine, &block)
    _, folder = views.detect { |k,v| engine == Tilt[k] }
    folder ||= views[:default]
    super(folder, name, engine, &block)
  end
end

это единственный способ изменить путь поиска по умолчанию из папки представлений для coffeescript и sass?

1 Ответ

0 голосов
/ 17 октября 2012

public не должен содержать никаких представлений, он должен содержать статические файлы.Если они являются статическими файлами, просто используйте их как статические файлы на вашем веб-сервере, не нужно привлекать Sinatra, не говоря уже о любых шаблонизаторах.Подавайте им static_file, если у вас есть для этого веские основания (ограничения доступа, выбор файла, зависящий от конфигурации пользователя и т. Д.)разные каталоги шаблонов для разных шаблонизаторов.Однако вы можете указать подкаталог как часть имени шаблона, например, scss :'scss/style'.Тогда это будут подкаталоги каталога views, который, кстати, вы можете изменить set :views в соответствии с документацией Sinatra.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...