没有路线匹配资产

时间:2012-08-20 21:43:12

标签: ruby-on-rails heroku carrierwave

每当我尝试使用Carrierwave + s3在我的Heroku应用程序上传文件时,我会收到此错误“我们很抱歉,但出了点问题。”,查看我的日志时发现此错误:

    2012-08-20T21:18:56+00:00 app[web.1]: Started GET "/assets/" for 24.90.124.181 at 2012-08-20 21:18:56 +00002012-08-20T21:18:56+00:00 app[web.1]:2012-08-20T21:18:56+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/assets"):

我已经在这个tutorial中做了所有事情,将我的应用程序部署到Cedar堆栈上的Heroku,但我仍然看到了这个错误。我还必须将它添加到我的application.html

  <%= javascript_include_tag :defaults %> <%= javascript_include_tag "jquery" %> <%= javascript_include_tag "nested_form"%> <%= javascript_include_tag "application"%>

因为有&lt;%= javascript_include_tag“应用程序”%&gt;只加载“application.js”

我尝试过让我的上传者工作的所有事情,但我不知道问题是什么。一切都在我的本地应用程序上完美运行。

这是github上的应用 我的Heroku app

2 个答案:

答案 0 :(得分:1)

您可以轻松更换

<%= javascript_include_tag :defaults %>
<%= javascript_include_tag "jquery" %>
<%= javascript_include_tag "nested_form"%>
<%= javascript_include_tag "application"%>

使用:<%= javascript_include_tag "application" %>如果您的application.js文件执行此操作。

默认导入为:

//= require jquery
//= require jquery_ujs
//= require_tree .

如果问题是缺少javascript,这应该解决它

我看到的其他问题是app/views/deals/show.html.erb内的这个链接:

<%= image_tag(@deal.user.logo, :class => 'company_logo') %>

此行返回此html:

<img alt="Assets" class="company_logo" src="/assets/">

此img src无效,这是您在日志中收到的错误。

如果此图片代码可以链接到图片路径,例如/assets/avatar.png,我相信您的问题将会得到修复

答案 1 :(得分:0)

由于您使用的是Carrierwave,因此您需要执行以下操作:

<%= image_tag(@deal.user.logo.url, :class => 'company_logo') %>

<%= image_tag(@deal.user.logo.current_path, :class => 'company_logo') %>