Rails 3.1.3 не может получить доступ к файлу внутри папки assets / javascripts - PullRequest
0 голосов
/ 26 ноября 2011

Я поместил fancybox (плагин jquery) в assets / javascripts / includes / jquery.fancybox-1.3.4

До этого я также пытался поместить его в каталог / vendor / assets / stylesheets / jquery.

Я получаю эту странную ошибку, и почему rails не может получить конкретный файл, когда он прямо там.

------------- Журнал разработки ----------------

Запущен GET "/vendor/assets/stylesheets/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.pack.js" для 127.0.0.1 в 2011-11-25 13:30:42 -0800

ActionController :: RoutingError (Нет подходящих маршрутов [GET] "/vendor/assets/stylesheets/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.pack.js"):

Предоставлено /Users/jayparteek/.rvm/gems/ruby-1.9.2-head@default/gems/actionpack-3.1.3/lib/action_dispatch/middleware/templates/rescues/routing_error.erb в пределах rescues / layout ( 0.5мс)

-------------- Журнал 2 -------------------------

ActionController :: RoutingError (Нет подходящих маршрутов [GET] "/vendor/assets/javascripts/fancybox-1.3.4/jquery.fancybox-1.3.4.pack.js"):

Ответы [ 2 ]

0 голосов
/ 26 ноября 2011

Просто используйте драгоценный камень для фантазии https://github.com/hecticjeff/fancybox-rails

0 голосов
/ 26 ноября 2011

Rails не загружает ваше дерево */assets/javascripts автоматически, только файлы в этом каталоге.И по умолчанию он прекомпилирует только application.js и все, что имеет расширение .js.

Я бы порекомендовал переименовать файл fancybox в fancybox-1.3.4.js.В Rails 3.1 активы объединяются и минимизируются перед выводом, поэтому нет необходимости даже использовать минимизированную версию, хотя это не повредит, если вы это сделаете.

Вы должны поместить плагины jQuery непосредственно в vendor/assets/javascripts/, затем включите их в соответствующий файл (вероятно, application.js) в app/assets/javascripts, например так (при условии application.js):

//= require jquery
//= require fancybox-1.3.4
//= [any other requires here]
//= require_self

Затем вы используете javascript_include_tag 'application' в вашем макете.Voila!

...