簡體   English   中英

Rails 3.1資產管道看不到文件

[英]Rails 3.1 asset pipeline not seeing files

我們正在將我們的應用程序從Rails 2升級到Rails 3.1,並且在資產管道方面遇到了麻煩。

我的config / application.rb中包含以下內容:

if defined?(Bundler)
  Bundler.require *Rails.groups(:assets => %w(development test))
  # Bundler.require(:default, :assets, Rails.env)
end

# Enable the asset pipeline
config.assets.enabled = true
# config.assets.prefix = "/assets"
config.assets.paths << "#{Rails.root}/public/images"
config.assets.paths << "#{Rails.root}/public/stylesheets"
config.assets.paths << "#{Rails.root}/public/javascripts"

config.assets.version = '1.0'

然后在development.rb中

# Do not compress assets
config.assets.compress = false
config.assets.debug = true

我知道這不是管道所需的行為,但是我們這樣做是為了確保當我們將升級合並回我們的master分支時,所有舊文件都得到正確處理。

然后,在我的public / stylesheets目錄中有以下文件“ all.css”:

/*
*= require ezform
*= require jquery-ui-1.8.9.custom
*= require thickbox
*= require yui-upload
*= require styles
*/

我從我的layouts / application.html.erb文件中調用它,如下所示:

<%= stylesheet_link_tag "all" %>

但是,將內容加載到瀏覽器中時,我沒有樣式(或javascript)。 Firebug和Chrome告訴我,正在/ assets中查找.css和.js文件-好像管道沒有在搜索所有內容並將其捆綁在一起。

錯誤看起來像這樣:

GET http://localhost:3000/assets/jquery-dependent.js 500 (Internal Server Error)

如果我將“ all.css”移動到/ app / assets中,它仍然找不到。 將其移至/ assets可以停止該錯誤,但是樣式表無法編譯,並且我的瀏覽器中仍然沒有任何樣式。

在我的日志中還出現了許多錯誤,如下所示:

Started GET "/assets/defaults.js?body=1" for 127.0.0.1 at 2011-12-22 14:35:36 -0600
[2011-12-22 14:35:36] ERROR NoMethodError: You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each
    /Users/kevin/.rvm/gems/ruby-1.9.2-p0@media3/gems/rack-1.3.5/lib/rack/handler/webrick.rb:71:in `service'
    /Users/kevin/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
    /Users/kevin/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
    /Users/kevin/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
cache: [GET /assets/defaults.js?body=1] miss, store
Served asset /defaults.js - 200 OK (1ms)

我想念什么?

嘆了口氣 我在(memcached -d)上執行了它,現在我的所有資產都出現了。 我不知道為什么,所以我喜歡一些解釋。 否則,它會起作用。

為了使管道正常工作,需要將一堆設置添加到開發和應用程序配置文件中。

請查看管道指南的最后部分,以獲取詳細信息。

完成這些操作后,我建議您將清單名稱更改為application.css和application.js,因為它們是默認名稱,從這些名稱開始您會遇到較少的問題。 如果您的問題仍然無法解決,請編輯您的問題,之后我會為您提供幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM