Rails 3.2.13 - 没有路由匹配[GET]“/ js /jquery.fancybox.js”

时间:2014-05-14 12:05:23

标签: javascript jquery ruby-on-rails ruby ruby-on-rails-3.2

我被分配了将新设计集成到旧应用程序中的任务,该应用程序基于3.2.8构建,我升级到3.2.13。让我感到困惑的是js部分,我已经通过搜索SO做了我所能做的一切,反之亦然但没有运气。已经调查了thisthis one但不知何故js没有被服务以下是可能有用的代码部分 -

app / views / layouts / application.html.erb:

  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
  <%= javascript_include_tag "html5shiv.js" %>
  <%= javascript_include_tag "fancybox.js" %>

应用程序/视图/家/ index.html.erb

  <script type="text/javascript" src="/javascripts/html5shiv.js"></script>
  <script type="text/javascript" src="/javascripts/fancybox.js"></script>

我收到错误:

  Started GET "/js/jquery.fancybox.js" for 127.0.0.1 at 2014-05-14 17:17:33 +0530

ActionController::RoutingError (No route matches [GET] "/js/jquery.fancybox.js"):

更新错误 -

Started GET "/assets/html5shiv.js" for 127.0.0.1 at 2014-05-14 17:17:33 +0530
Served asset /html5shiv.js - 304 Not Modified (0ms)
[2014-05-14 17:17:33] WARN  Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true

欢迎任何建议或指示。更多细节将在询问时提供。谢谢提前,希望得到解决:)

1 个答案:

答案 0 :(得分:0)

首先,我不确定您为什么要包括两次的脚本,但我建议不要这样做。其次,您使用资产管道吗?如果您(我强烈建议您这样做),只需将以下内容添加到application.js文件中:

//= require html5shiv
//= require fancybox

正确的文件应该包含在连接的javascript文件中。

此外,您收到的错误似乎与您发布的代码无关(因为您没有指定生活在/js下的资产的链接),但我确实相信您尝试链接到/javascripts生成的脚本(而不是assets/javascripts),您可能会收到类似您发布的路由错误。

因此,删除对脚本的引用,只需将它们添加到清单(application.js),你应该没问题。