2010-10-15 29 views
12

Tôi vừa chuyển từ cơ sở dữ liệu phát triển sang cơ sở dữ liệu sản xuất, và tôi nhận ra mình đang nhận được một danh sách lỗi nhất quán về cái nhìn mà tôi cố gắng mở. Biểu định kiểu không tải chính xác, mặc dù đang ở đúng vị trí.Máy chủ sản xuất đường ray: biểu định kiểu không hiển thị!

Dưới đây là một số thông tin về lỗi:

Xem

<head> 
<%= stylesheet_link_tag "global", "home", "http://static.flowplayer.org/tools/css/scrollable-navig.css" %> 
</head> 

điều khiển

Started GET "/stylesheets/global.css?1287048448" for 127.0.0.1 at 2010-10-15 00:18:43 -0400 
Processing by WelcomeController#long_switchboard as CSS 
Parameters: {"1287048448"=>nil, "path"=>"stylesheets", "link"=>"global"} 
Completed in 2ms 

NoMethodError (undefined method `id' for nil:NilClass): 
    app/controllers/welcome_controller.rb:76:in `long_switchboard' 
Rendered C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.0ms) 
Rendered C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (7.0ms) 
Rendered C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack3.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (108.0ms) 

Page Source

<link href="/stylesheets/global.css?1287048448" media="screen" rel="stylesheet" type="text/css" /> 
<link href="/stylesheets/home.css?1287086704" media="screen" rel="stylesheet" type="text/css" /> 
<link href="http://static.flowplayer.org/tools/css/scrollable-navig.css" media="screen" rel="stylesheet" type="text/css" />  

Khi tôi cố gắng mở 'toàn cầu' và biểu định kiểu 'home' s từ nguồn trang, chúng không được mở. Tôi đã thử thêm 'public /' vào URL nhưng nó cho biết không có kết quả phù hợp với tuyến đường.

Location

Tất cả phi http stylesheets là trong thư mục gốc/công cộng/stylesheets/

đường

Hai tuyến đường cuối cùng là 'catch-alls', chỉ có một tính năng đặc biệt trên trang web. Chúng dường như đang bắt các bảng định kiểu của tôi (và có thể cả các thẻ khác nữa).

match ':path/:link' => 'welcome#long_switchboard' 
match ':path' => 'welcome#short_switchboard' 
+0

Trang tuyến đường đưa họ vào hành động bộ điều khiển catchall ở dưới cùng của trang tuyến đường của tôi, trang web của tôi sử dụng làm tính năng để thuận tiện cho người dùng (người dùng có thể tạo các url khác nhau để người khác truy cập). Không có 404 hoặc 403 - thay vào đó tôi chỉ nhận được một trang không được định dạng xấu! – sscirrus

+1

Vì vậy, vấn đề nằm trong 'routes.rb' ... Đảm bảo rằng'/stylesheets', '/ images','/javascripts', v.v. không bị bắt bởi tuyến đường 'bắt tất cả'. Đăng 'routes.rb' của bạn nếu bạn muốn gợi ý cách sửa lỗi này. – Mischa

+0

Tôi đã thêm các tệp tuyến đường, Tokyo. Cảm ơn – sscirrus

Trả lời

18

này thread có một số gợi ý ...

Tùy thuộc vào máy chủ web của bạn, bạn có thể phải thay đổi các thiết lập sau đây trong config/environments/prodcution.rb từ:

config.serve_static_assets = false 

Để:

config.serve_static_assets = true 
+1

Các ý kiến ​​trên dòng này cho biết > "Vô hiệu hóa máy chủ tài sản tĩnh của Rails. Trong sản xuất, Apache hoặc nginx sẽ làm điều này" Vì vậy, tôi nên biến nó thành false nếu tôi sử dụng nginx trong sản xuất? – StarCub

Các vấn đề liên quan