有人知道为什么 RoR 不能正确提供 CoffeeScript 吗?
在我的应用程序 View 中:
<%= javascript_include_tag :defaults %>
在浏览器中,这显示为:
<script src="/assets/defaults.js" type="text/javascript"></script>
但是当我点击该链接时,找不到 defaults.js。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Action Controller: Exception caught</title>
<style>
body { background-color: #fff; color: #333; }
body, p, ol, ul, td {
font-family: helvetica, verdana, arial, sans-serif;
font-size: 13px;
line-height: 18px;
}
pre {
background-color: #eee;
padding: 10px;
font-size: 11px;
}
a { color: #000; }
a:visited { color: #666; }
a:hover { color: #fff; background-color:#000; }
</style>
</head>
<body>
<h1>Routing Error</h1>
<p><pre>No route matches [GET] "/assets/defaults.js"</pre></p>
</body>
</html>
最佳答案
在 Rails 3.0 中,这个 :defaults
参数实际上是所谓的 JavaScript 扩展,由 Rails 配置以扩展以包含 处的 Prototype 文件公共(public)/javascripts。
在 Rails 3.1 中,不再有这些 JavaScript 扩展,而是有 list 文件。因此,您不应为此使用 javascript_include_tag :defaults
,而应使用 javascript_include_tag :application
,这是您应用程序的默认 JavaScript list 文件。
在默认的 Rails 3.1 应用程序中,有一个 app/assets/javascripts/application.js
文件,其中包含需要哪些文件的 Sprockets 指令。我有 begun work on an Asset Pipeline guide for Rails,其中解释了这些文件的工作原理以及指令的含义。
关于ruby-on-rails - CoffeeScript 的 Ruby-on-Rails 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6433679/