Ich möchte in einer Anwendung statische Seiten in derselben
URL-Hierarchie haben, die auch auf Rails Controller geroutet wird. Etwa
so
app/views/movies
|-- edit.html.erb
`-- _movie.html.erb
public/movies
'-- index.html
Die Absicht dahinter ist, dass in der Produktionsumgebung die statischen
Seiten direkt vom Webserver ausgeliefert werden. Aber es soll halt auch
während der Entwicklung mit Mongrel funktionieren.
Michael
--
Michael Schuerig
mailto:michael@schuerig.de
http://www.schuerig.de/michael/
on 2009-03-31 02:49
on 2009-03-31 07:12
Hallo Michael,
Du könntest die index-Datei ins app/views/movies-Verzeichnis zu legen und
auf
auf dem Produktionsserver per Page-Caching quasi-statisch zu machen.
app/views/movies
|-- index.html.erb
|-- edit.html.erb
`-- _movie.html.erb
Eventuell könnte auch dieser Railscast weiterhelfen:
http://railscasts.com/episodes/117-semi-static-pages
Viele
Grüße
Michael Kastner
Michael Schuerig schrieb:
on 2009-04-01 22:48
Hallo Michaels (sorry, could not resist ;-), auch wenn ich mir nicht ganz sicher bin, dass ich Deine Intention, Michael S., richtig verstanden habe, und auch wenn der Screencast von Ryan Bates zu dem Thema sehr instruktiv ist, hätte ich einen Tipp, um das Rad nicht neu zu erfinden: Für (semi-)statische Anwendungsteile benutze ich gerne Comatose: http://comatose.rubyforge.org/ Das habe ich in einem Projekt schon produktiv eingesetzt. Es ist nicht hyper-komfortabel, aber erlaubt die Gestaltung vieler Routevariationen, ermöglicht den Aufruf von direkt gerendertem Text, also z. B. in Deinem Fall in app/views/movies/index.html.erb: <%= render :comatose=>'indices/movies' %> Man kann auch lokale Variablen mitgeben, mit Liquid-Drops mehr Dynamik (allerdings ggf. auch Sicherheitslecks) hineinbringen, das Page-Cacheing in div. Granularität steuern, und ein Flansch zur Anbindung von restful_authentication ist auch schon gelegt. Vielleicht hilft's ja weiter. Cheers [ofi]
on 2009-04-01 23:57
On Wednesday 01 April 2009, Olaf Fiedler wrote: > auch wenn ich mir nicht ganz sicher bin, dass ich Deine Intention, > Michael S., richtig verstanden habe Der Hintergrund ist, dass ich statische Seiten habe deren dynamischer Inhalt vollständig per AJAX als JSON geladen wird. Für beides will ich schöne URLs haben, die sinnvoll zusammen passen. Michael -- Michael Schuerig mailto:michael@schuerig.de http://www.schuerig.de/michael/
on 2009-04-02 02:10
Hm, plötzlich verstehe ich das Problem nicht mehr. Ich habe gerade in einem meiner Rails-Projekte unter app/views/posts/index.html.erb in etwas Bedeutungsloses umbenannt, und in public/posts eine index.html angelegt. Im RAILS_ENV development dann http://localhost:3000/posts/ aufgerufen, und es geht: Die statische Seite wird geliefert. Wenn in der statischen Seite nun JS enthalten wäre, das die anderen Actions triggert, sollte das doch gehen, oder was blicke ich hier nicht? Sorry, wenn das jetzt blöd gefragt ist, aber das interessiert mich jetzt schon. *rübekratz* Falls Du mal Zeit hast, kannst Du mir die Frage ja beantworten, so Du magst. Schon mal Danke und beste Grüße [ofi] P.S.: Meine aktuelle Rails-Version ist 2.3.2.
on 2009-04-02 03:07
On Thursday 02 April 2009, Olaf Fiedler wrote: > Hm, > > plötzlich verstehe ich das Problem nicht mehr. Ich habe gerade in > einem meiner Rails-Projekte unter app/views/posts/index.html.erb in > etwas Bedeutungsloses umbenannt, und in public/posts eine index.html > angelegt. Im RAILS_ENV development dann http://localhost:3000/posts/ > aufgerufen, und es geht: Die statische Seite wird geliefert Versuch jetzt mal auf http://localhost:3000/posts/index.json oder http://localhost:3000/posts mit Accept-Header application/json,application/javascript zuzugreifen. Du wirst feststellen, dass es nicht geht. Die Erklärung dafür, findet sich, glaube ich, in rails/railties/lib/rails/rack/static.rb. Jedenfalls für Mongrel; ob das bei Passenger auch wirksam ist, habe ich noch nicht herausgefunden. Rails::Rack::Static unterscheidet jedenfalls nicht nach gewünschtem MIME-Type, sondern liefert immer das, was dort mit Endung HTML herumliegt. Michael -- Michael Schuerig mailto:michael@schuerig.de http://www.schuerig.de/michael/
on 2009-04-06 17:56
Okay, jetzt verstehe ich: Das Problem beschränkt sich auf die index-Action. Puh, sorry, da fällt mir jetzt auch nichts ein, was nicht bloß ein Workaround wäre. Sollte sich das ändern bzw. ich über eine Lösung stolpern, werde ich an Dich denken. Im Gegenzug wäre es schön, wenn Du vor mir eine Lösung findest (was vermutlich wahrscheinlicher ist), Du hier über diese informieren könntest. Good luck und viel Erfolg [ofi]
on 2009-04-06 19:46
On Monday 06 April 2009, Olaf Fiedler wrote: > Okay, > > jetzt verstehe ich: Das Problem beschränkt sich auf die index-Action. > Puh, sorry, da fällt mir jetzt auch nichts ein, was nicht bloß ein > Workaround wäre. Sollte sich das ändern bzw. ich über eine Lösung > stolpern, werde ich an Dich denken. Im Gegenzug wäre es schön, wenn > Du vor mir eine Lösung findest (was vermutlich wahrscheinlicher ist), > Du hier über diese informieren könntest. Ich verstehe inzwischen immerhin, warum es nicht einfach geht, was ich erreichen möchte. Sowohl Rails auf Mongrel etc. mit der Static-Middleware (siehe irgendwo in Railties) als auch Passenger berücksichtigen den Accept-Header, also die vom Browser gewünschten MIME-Typen, nicht, wenn sie eine passende Datei herum liegen sehen. Ich habe bei Passenger ein entsprechendes Ticket geöffnet[*]. Falls mir jemand erklären kann, wie ich in einem Apache2-Modul, sofern mod_mime geladen ist, den MIME-Typ einer Datei ermitteln kann, dann schreibe ich auch selbst einen Patch. Michael [*] http://code.google.com/p/phusion-passenger/issues/... -- Michael Schuerig mailto:michael@schuerig.de http://www.schuerig.de/michael/
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.