当我调用 assets 控制器的 index 操作时,相应的 index 模板使用 assets 布局其中包括这一行:

<%= javascript_include_tag 'prototype'  %>

我得到的错误是:

No route matches "/javascripts/prototype.js" with {:method=>:get}

这是我的路线档案:

ActionController::Routing::Routes.draw do |map|
  map.resources :assets
  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
end

知道我在这里可能缺少什么吗?

有没有办法明确为此文件定义路线?

有帮助吗?

解决方案

您不需要为此定义路由 - 它应该由.htaccess文件中的重写规则处理。

您需要检查您的mod_rewrite是否已启用,并且.htaccess文件是否正确 - 只有在您的公共目录中不存在所请求的文件时,它才应该将请求发送到您的dispatch.rb。您可能还需要检查该文件是否存在。

其他提示

您无需为此文件定义路线,您需要此文件。我们创建一个新项目,Rails在您的javascripts文件夹中存储Prototype库。

  create  public/javascripts/prototype.js
  create  public/javascripts/effects.js
  create  public/javascripts/dragdrop.js
  create  public/javascripts/controls.js
  create  public/javascripts/application.js

确保文件存在。如果没有,请创建一个新项目并从其/ public / javascript文件夹中复制文件。

如果您有一个名为javascripts的控制器,也可能会发生这种情况。

尝试使用:

<%= javascript_include_tag :defaults  %>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top