我把fancybox(jquery插件)放在assets / javascripts / includes / jquery.fancybox-1.3.4
中在此位置之前,我还尝试将其放在/ vendor / assets / stylesheets / jquery目录下。
我得到了这个奇怪的错误&为什么rails不能在其正确的时候获取特定文件。
-------------开发日志----------------
在2011-11-25 13:30:42为127.0.0.1开始获取“/vendor/assets/stylesheets/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.pack.js” -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(为0.5ms)
-------------- Log 2 -------------------------
ActionController :: RoutingError(没有路由匹配[GET]“/ vendor/assets/javascripts/fancybox-1.3.4/jquery.fancybox-1.3.4.pack.js”):
答案 0 :(得分:0)
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'
。瞧!
答案 1 :(得分:0)