未处理Javascript清单文件“application.js”

我在Macbook Pro上,我创建了一个新的Rails 3.2应用程序,但资产管道不起作用。 这是我做的:

$ rails version Rails 3.2.5 $ rails new test_assets $ cd test_assets $ rails server 

服务器启动正常,但是如果我访问http://0.0.0.0:3000/assets/application.js ,则表明清单文件根本没有处理,它显示:

 //... some comments ... //= require jquery //= require jquery_ujs //= require_tree . ; 

我尝试在我的其他Macbook Pro上执行完全相同的步骤。 它运作良好。 在该计算机上访问http://0.0.0.0:3000/assets/application.js会显示包含所有内容的已编译javascript文件。

我已经阅读了http://railscasts.com/episodes/279-understanding-the-asset-pipeline和http://guides.rubyonrails.org/asset_pipeline.html ,我在网上搜索了几个小时,但没有任何线索。

非常感谢您的帮助!

我遇到过同样的问题!

将Ruby从2.0.0降级到1.9.3解决了这个问题

建议:在你的Gemfile中安装node.js或取消注释gem 'therubyracer', :platforms => :ruby

我按照相同的步骤,我的日志文件看起来像这样……如果你启动服务器并请求/assets/application.js你的样子是什么? 如你所见,我在3.2.6,它编译了我的application.js

 => Booting WEBrick => Rails 3.2.6 application starting in development on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server [2012-07-19 22:50:02] INFO WEBrick 1.3.1 [2012-07-19 22:50:02] INFO ruby 1.9.3 (2012-02-16) [x86_64-darwin11.3.0] [2012-07-19 22:50:02] INFO WEBrick::HTTPServer#start: pid=21393 port=3000 Started GET "/assets/rails.png" for 127.0.0.1 at 2012-07-19 22:50:13 -0500 Connecting to database specified by database.yml Served asset /rails.png - 200 OK (9ms) Started GET "/assets/application.js" for 127.0.0.1 at 2012-07-19 22:50:23 -0500 Compiled jquery.js (2ms) (pid 21393) Compiled jquery_ujs.js (0ms) (pid 21393) Compiled application.js (26ms) (pid 21393) Served asset /application.js - 200 OK (74ms) [2012-07-19 22:50:24] WARN Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true 

面对完全相同的情况。

我发现我使用ruby就像v2.0.0rc之类的东西,如果我将它降级到1.9.3p194(两者都在Rbenv下),那么所有工作都很完美。

虽然你可以在视图中使用帮助器,比如<%= javascript_include_tag "jquery", "jquery_ujs" %> ,它甚至可以帮助我使用ruby2.0.0。

我今天遇到了同样的问题,我已经准备好将Ruby从2.0降级到1.9.3以解决application.js没有编译的问题。 问题发生在安装了Ruby 2.0的生产服务器上(和Rails 3.2.8)。 在开发机器(Ruby 1.9.3和Rails 3.2.8)上,application.js编译得很好。

最后,我将生产服务器从Rails 3.2.8升级到3.2.14; 删除Gemfile.lock,然后运行bundle install。 然后我重新编译了资产,并且voila application.js编译了资产。

我想与Stackoverflow的观众分享这个,也许这会解决别人的问题。

带有ruby 2.0的第一个官方支持的rails 3.2版本是3.2.13。所以将rails版本升级到rails 3.2.13将解决问题。

升级步骤:

1)将Gemfile中的rails版本更改为gem’trail’,’3.2.22’。

2)捆绑更新rails

在开发时,资产不是预编译的。 如果要查看它们,则应运行bundle exec rake assets:precompile

打开enviornment / development.rb并设置config.assets.debug = false。 而已