Rails 3.1.3无法访问assets / javascripts文件夹中的文件

时间:2011-11-25 21:34:42

标签: jquery-plugins ruby-on-rails-3.1 asset-pipeline

我把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”):

2 个答案:

答案 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)