我被分配了将新设计集成到旧应用程序中的任务,该应用程序基于3.2.8构建,我升级到3.2.13。让我感到困惑的是js部分,我已经通过搜索SO做了我所能做的一切,反之亦然但没有运气。已经调查了this和this 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
欢迎任何建议或指示。更多细节将在询问时提供。谢谢提前,希望得到解决:)
答案 0 :(得分:0)
首先,我不确定您为什么要包括两次的脚本,但我建议不要这样做。其次,您使用资产管道吗?如果您(我强烈建议您这样做),只需将以下内容添加到application.js
文件中:
//= require html5shiv
//= require fancybox
正确的文件应该包含在连接的javascript文件中。
此外,您收到的错误似乎与您发布的代码无关(因为您没有指定生活在/js
下的资产的链接),但我确实相信您尝试链接到/javascripts
生成的脚本(而不是assets/javascripts
),您可能会收到类似您发布的路由错误。
因此,删除对脚本的引用,只需将它们添加到清单(application.js
),你应该没问题。