Rails 3.2.13 -没有路由匹配[GET] "/js/jquery. fanybox .js"

Rails 3.2.13 - No route matches [GET] "/js/jquery.fancybox.js"

本文关键字:quot js GET fanybox jquery 路由 Rails      更新时间:2023-09-26

我被分配的任务是将新的设计集成到一个旧的应用程序中,这个应用程序是在3.2.8上构建的,我升级到3.2.13。什么让我困惑的是js部分,我已经做了一切我可以通过搜索SO,反之亦然,但没有运气。已经看了这个和这个,但不知何故js没有被服务。以下是代码的部分,可能是有用的-

app/views/布局/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" %>

app/views/home/index.html.erb

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

Error I get:

  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

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

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

//= require html5shiv
//= require fancybox

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

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

因此,删除对脚本的引用并简单地将它们添加到您的清单(application.js)中,您应该很好。