Abbiamo un'app per rails che ho recentemente aggiornato da Rails 3.0 a Rails 3.2. Questa app offre più client. Per personalizzarlo per ogni cliente, abbiamo la directory app/themes
. In ci sono sottomoduli. Ogni sottomodulo contiene cose come locales/en.yml
, views/layouts
, views/controller_name
, ecc. Usiamo il prepend_view_path
per aggiungere le visualizzazioni del tema e lo I18n.load_path
da aggiungere nelle impostazioni internazionali. Stiamo cercando di utilizzare la pipeline di asset in modo da poter tenere tutto il mix di materiale client fuori dalla directory pubblica e tenerlo contenuto in ciascun tema.Aggiungere una cartella al percorso della pipeline degli asset?
C'è un modo in cui posso dire dinamicamente ai binari di caricare quale cartella tema/nome-tema/risorsa voglio? Utilizziamo la logica delle impostazioni per impostare quale tema è attivo. Quindi, se ho il tema impostato su "google", il ApplicationController
quindi carica i file dal percorso:
app/themes/google/locales/*.yml
app/themes/google/views
Quello che mi piacerebbe essere in grado di fare è avere il file manifesto,
app/themes/google/assets/stylesheets/application.css
facilmente accessibile per il layout, proprio come si farebbe in un file di app/views/layouts
:
= stylesheet_link_tag "application"
c'è un modo posso fare questo? o dobbiamo spostare manualmente le risorse nella directory delle risorse effettive?
C'è un modo per caricare asset per controller, ma che non è quello che stai cercando. Si può considerare che la pipeline delle risorse (in produzione) precompila e ottimizza tutte le risorse in un singolo file (rispettivamente 'application.js' e' application.css') in '/ public'. Lo scopo è di ridurre le chiamate al server per recuperare le risorse. –