【问题标题】:ajax doesn't work on rails 3.2 with production environmentajax 不适用于具有生产环境的 Rails 3.2
【发布时间】:2012-06-05 08:41:28
【问题描述】:

每个人。

我创建了一个新项目和脚手架。 当我使用 'RAILS_ENV=production rails s' 执行 rails 服务器时,ajax 似乎不起作用。

rails new testpro

cd testpro

rails g 脚手架用户名:字符串电子邮件:字符串

rake 资产:预编译

RAILS_ENV=生产 rake db:migrate

RAILS_ENV=生产轨道 s

我添加了一条记录,然后返回索引页面。 我可以看到记录并显示、编辑、销毁链接。 当我单击销毁链接时,它只显示记录。 似乎链接工作获取请求。

它应该弹出删除确认。

Webrick 报告以下消息。

开始获取“/assets/application-f79f879edae5d837e15161fba0ee9d3d.js” 127.0.0.1 在 2012-05-31 14:02:12 +0900

ActionController::RoutingError(没有路由匹配 [GET] “/assets/application-f79f879edae5d837e15161fba0ee9d3d.js”):

实际上,我在其他项目中也遇到了同样的问题,并尝试用一个普通的项目来澄清问题。

我的环境如下: 导轨 3.2.3 红宝石 1.9.3p125 sqlite3

其他项目: 导轨 3.2.0 红宝石 1.9.3p125 MySQL Apache2 + 乘客

佑介。

【问题讨论】:

  • 你明白了吗?我遇到了同样的问题,我的 ajax:success 回调在生产中没有被触发,但在开发中工作正常。为什么我需要启用config.serve_static_assets

标签: ruby-on-rails-3.2


【解决方案1】:

我相信你只是没有预编译你的资产

rake assets:precompile

默认情况下,在生产模式下,资产编译所需的 gem 不会被加载,并且假定资产已被预编译为可以以最快速度提供的文件。

【讨论】:

  • 感谢您的回复。但正如我所引用的,我确实预编译了资产。
【解决方案2】:

config.serve_static_assets = true in production.rb 在新项目中运行良好。

至于我的项目,我修改了 application.js,我的项目运行良好。

前:

//= require twitter/bootstrap
//= require jquery  
//= require jquery_ujs  

之后:

//= require jquery  
//= require jquery_ujs  
//= require twitter/bootstrap

【讨论】:

    猜你喜欢
    • 2018-12-15
    • 2013-11-13
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    • 2021-03-10
    • 1970-01-01
    相关资源
    最近更新 更多