Problem z routes do stylesheet

Witajcie mam problem z konfiguracją routes-ów w Ruby, korzystałem z dość przyjemnego turtoriala RailsSpace, dostępnego tylko w wydaniu książkowym, niestety. Nie działa jw routes (przekierowanie) do arkusza stylów css. Dostępny jest on pod ścieżką /stylesheets/style.css.

Nie wiem, czy to coś pomoże w rozwiązaniu problemu, dodam zawartość routes.rb, prosilbym o wyjaśnienie w czym tkwił mój problem, albowiem narazie zapoznaje się z Rails-ami :wink:

[code]ActionController::Routing::Routes.draw do |map|
map.resources :blogs do |blog|
blog.resources :posts do |post|
post.resources :comments
end
end

The priority is based upon order of creation: first created -> highest priority.

Sample of regular route:

map.connect ‘products/:id’, :controller => ‘catalog’, :action => ‘view’

Keep in mind you can assign values other than :controller and :action

Sample of named route:

map.purchase ‘products/:id/purchase’, :controller => ‘catalog’, :action => ‘purchase’

This route can be invoked with purchase_url(:id => product.id)

Sample resource route (maps HTTP verbs to controller actions automatically):

map.resources :products

Sample resource route with options:

map.resources :products, :member => { :short => :get, :toggle => :post }, :collection => { :sold => :get }

Sample resource route with sub-resources:

map.resources :products, :has_many => [ :comments, :sales ], :has_one => :seller

Sample resource route with more complex sub-resources

map.resources :products do |products|

products.resources :comments

products.resources :sales, :collection => { :recent => :get }

end

Sample resource route within a namespace:

map.namespace :admin do |admin|

# Directs /admin/products/* to Admin::ProductsController (app/controllers/admin/products_controller.rb)

admin.resources :products

end

You can have the root of your site routed with map.root – just remember to delete public/index.html.

map.connect ‘’, :controller => “site”
map.profile ‘profile/:screen_name’, :controller => ‘profile’, :action => ‘show’
map.hub ‘user’, :controller => ‘user’, :action => ‘index’

See how all your routes lay out with “rake routes”

Install the default routes as the lowest priority.

map.connect ‘:controller/:action/:id’
map.connect ‘:controller/:action/:id.:format’
end[/code]

Nie mam pojęcia, co Ci dokładnie chodzi, ale do css’ów nie robisz żadnych routsów. Masz je w public/stylesheets i railsy o tym wiedzą. Aby użyć arkusza znajdującego się w tym katelogu, użyj http://www.railsbrain.com/api/rails-2.3.2/doc/index.html?a=M002541&name=stylesheet_link_tag

Ja też nie rozumiem w czym tkwi problem. Routing dotyczy tylko i wyłącznie dynamicznych zasobów (tych które są obsługiwane przez kontrolery). CSSy zazwyczaj (w 99% przypadków) nie są generowane dynamicznie tylko siedzą sobie w katalogu /stylesheets/ serwera WWW i są serwowane całkowicie z pominieńciem Ruby on Rails.

Obadaj funkcję: stylesheet_link_tag która wygeneruje odpowienie wpisy w sekcji head dokumentu (trzeba dodać w layoucie).

Dobra, sprawdziłem i faktycznie, problem nie leży po stronie routes. Chodzi o złe generowanie ścieżki przez stylesheet_link_tag, zamiast generować ścieżkę: stylesheets/site.css to generuje ją z jakimiś cyframi stylesheets/site.css?27228782728 i to jest cały problem mam rails-y 2.2.3. Proszę pomóżcie, próbowałem już z pochodnymi funkcjami, ale problem jest ten sam. Zasadniczo mógłbym podać CSS-a w zancznikach HTML, ale wolę rozwiązać to na poziomie ruby-ego.

te cyfry są ok, to jest po to żeby w trybie development przegladarka zawsze brała świeży css, nie z cache

no właśnie nie są ok, bo jeśli wejdę sobie na przykładowo generowaną ścieżkę http://localhost:3000/stylesheets/site.css?1273189780 to dostanę błąd:

Internal Server Error private method `gsub!' called for #<Class:0xb6ff44dc> WEBrick/1.3.1 (Ruby/1.8.7/2010-01-10) at localhost:3000
dodam jeszcze, że błąd nie pokazuje się, gdy wejdę w tą ścieżkę bez 0 na końcu :wink: Wiecie o co chodzi może to wadliwa konfiguracja serwera ubuntu 10.04 ruby 1.8.7 rails 2.2.3

cyfry są ok, bo każdy je ma w trybie development :slight_smile: to musi być coś innego

ale to 0 na końcu wadzi, bo bez 0 wchodzi przeglądarka w arkusz CSS, a z 0 nie :wink:
takie mam wrażenie, że to może być wadliwa konfiguracja serwera, albo trybu development samego, jeśli to da się skonfigurować, bo gdy wejdę zaraz po starcie serwera jest ok, po odświeżeniu strony już akrusz CSS nie jest dołączany.

Zainstaluj sobie mongrela lub thina - te serwery są pewniejsze i nie przypominam sobie żebym miał z nimi kiedykolwiek problem. Z webrickiem (którego używasz) za to tak.

Dobra to ja instaluję inny serwer :wink:
Słuchajcie panowie, tak widzę wszyscy, co odpowiadają, z Krakowa. Może jakiś projekt byśmy wspólnie stworzyli, bo RoR to jak narazie mało popularna, a za to wydajna technologia. Mam kilka pomysłów i szukam współpracowników, jeśli macie chwilę wolnego czasu to zapraszam do kontaktu :wink: Może uda się stworzyć coś ciekawego, a przy okazji się poduczyć i może kasy coś wpadnie :wink:

“Lekki” offtop, ale właśnie coś takiego robie z sebciozem

http://github.com/phocke/fix-the-world

jak masz ochotę się przyłączyć to daj znać :wink: