Я использую unicorn для подачи заявки sinatra, а интерфейс использует bootstrap.js и jQuery(UI).Sinatra, Единорог и обслуживание JavaScript
В настоящее время, когда я запускаю приложение на своем локальном компьютере и получаю доступ к странице с моей локальной машины, все так, как должно быть. Тем не менее, у меня были сотрудники, соединяясь со своими машинами в локальной сети, и их результаты разные. Немного непонятно, какие нагрузки и что нет, но одно можно сказать наверняка: не все JavaScript отправляются на удаленные компьютеры. На домашней странице используются вкладки jQueryUI, но когда страница загружается на любой хост, но сервер, он отображает без них (вместо этого есть маркированный список со ссылками).
Файлы .js
ссылаются на обычные теги HTML <script>
в файлах ERB, которые обслуживаются Sinatra.
Выход из единорога предполагает, что JS-файлы становятся запросили и отправлены правильно (я получаю HTTP 200 статус для каждого):
xxx.xxx.xxx.xxx - - [18/May/2012 09:41:12] "GET /js/jquery-1.7.2.min.js HTTP/1.1" 200 94840 0.0257
xxx.xxx.xxx.xxx - - [18/May/2012 09:41:12] "GET /js/jquery-ui-1.8.20.custom.min.js HTTP/1.1" 200 206731 0.0113
xxx.xxx.xxx.xxx - - [18/May/2012 09:41:12] "GET /js/bootstrap.js HTTP/1.1" 200 50089 0.0056
Местных разрешения на каждый файл 755, и они расположены в [app_root]/public/js.
Очевидно, что моя проблема не является с Sinatra или Unicorn, но это мой контекст на данный момент. Пожалуйста, дайте мне знать, если есть что-то, что я должен изучить, или если к вопросу добавляется дополнительная информация.
Я добавил это к вопросу, чтобы уточнить, но мои файлы javascript находятся в '[app_root]/public/js' - это должно позаботиться о том, чтобы обслуживать их как статические, не так ли? – asfallows
Да, но я рекомендую вам запустить приложение без Единорога и выяснить, правильно ли в этом случае Sinatra обслуживает ваши файлы .js'. – user973254
Поскольку у меня есть больше, чем просто js, которые должны быть общедоступными, я 'set: public_folder, File.dirname (__ FILE__) + '/ public'', который является родителем' js/'(и' css/'и 'IMG /'). Сделав это изменение, поведение Unicorn не изменилось, и когда я запускаю Sinatra самостоятельно, я получаю 404 на индексной странице. – asfallows