Синатра не может обслуживать файлы JavaScript без посторонней помощи? Это правильно? - PullRequest
1 голос
/ 27 июля 2010

Хорошо, так что у меня нет проблем с этим, скажем так, но я хочу убедиться, что я делаю это правильно, потому что в долгосрочной перспективе это просто кажется большой дополнительной работой.

Я работаю с Sinatra и использую шаблоны HAML. Я хочу включить файл JavaScript из моего файла HAML. Моя структура каталогов выглядит так:

  • средства массовой информации /
    • JS /
      • init.js (файл, который я хочу включить)
    • CSS /
  • модель /
  • просмотры /
    • layout.haml
  • маршруты /
  • init.rb
  • bootstrap.rb (входит в init.rb)

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

get '/media/js/:name' do
    begin
        send_file('media/js/' + params[:name])
    rescue
       "There's nothing for you here"
    end
end

У меня нет проблем с этим для обслуживания моих медиа / статических файлов, но я просто хочу убедиться, что это необходимо, я бы хотел, чтобы это было возможно.

EDIT

Я включил следующий код в мой файл bootstrap.rb, но безрезультатно:

set :root, File.dirname(__FILE__)
enable :static

1 Ответ

9 голосов
/ 27 июля 2010

С Веб-сайт Синатры :

Статические файлы обслуживаются из каталога ./public.Вы можете указать другое местоположение, установив: public параметр:

set :public, File.dirname(__FILE__) + '/static'

Вы обслуживаете из каталога media.

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