Wir haben eine Rails App, die ich vor kurzem von Rails 3.0 auf Rails 3.2 aktualisiert habe. Diese App bedient mehrere Clients. Um es für jeden Kunden anzupassen, haben wir das Verzeichnis app/themes
. Da sind Submodule. Jedes Submodul enthält Dinge wie locales/en.yml
, views/layouts
, views/controller_name
usw. Wir verwenden die prepend_view_path
, um die Themenansichten hinzuzufügen, und die I18n.load_path
hinzufügen in den Sprachumgebungen. Wir betrachten die Verwendung der Asset-Pipeline, damit wir den gesamten Mix an Client-Material aus dem öffentlichen Verzeichnis heraushalten und in jedem Thema beibehalten können.Ordner zum Pfad der Anlagenpipeline hinzufügen?
Gibt es eine Möglichkeit, ich kann Schienen dynamisch angeben, welche Thema/Thema-Name/Assets Ordner ich möchte? Wir verwenden Einstellungslogik, um festzulegen, welches Thema aktiv ist. Also, wenn ich das Thema haben auf „google“, die ApplicationController
lädt dann Dateien aus dem Pfad:
app/themes/google/locales/*.yml
app/themes/google/views
Was Ich mag würde der Lage sein, die Manifest-Datei zu tun ist, haben,
app/themes/google/assets/stylesheets/application.css
leicht zugänglich, um das Layout, so wie sonst in einer app/views/layouts
Datei:
= stylesheet_link_tag "application"
gibt es eine Möglichkeit kann ich das tun? Oder müssen wir die Assets manuell in das Verzeichnis der tatsächlichen Assets verschieben?
Es ist eine Möglichkeit, Vermögenswerte pro Controller zu laden, aber das ist nicht das, was Sie suchen. Sie können in Betracht ziehen, dass Asset-Pipeline (in der Produktion) alle Assets in einer einzigen Datei (bzw. 'application.js' und' application.css') in '/ public' vorkompiliert und optimiert. Der Zweck besteht darin, die Anzahl der Aufrufe zu reduzieren Server zum Abrufen von Assets. –