Sto costruendo un sito in Rails 3.2. Sono passati 3 anni da quando ho toccato Rails o Ruby, quindi sono arrugginito su entrambi, inoltre l'ultima volta che ho usato le rotaie è stato Rails 2.3. Inutile dire che scusate qualsiasi "semplice" domanda qui sotto.CSS dinamico nella pipeline di asset Rails, compilare al volo
Ecco le specifiche
- Multi Tennant CMS/negozio
- Ogni "Store" (aka sottodominio) può avere il proprio aspetto, tatto, ecc. tramite le personalizzazioni CSS
- Le personalizzazioni possono essere eseguite in un'interfaccia utente all'interno dell'applicazione consentendo all'utente di modificare le variabili di base di Bootstrap (ad es.
@textColor
,@bodyBackground
, ecc)
- Le personalizzazioni possono essere eseguite in un'interfaccia utente all'interno dell'applicazione consentendo all'utente di modificare le variabili di base di Bootstrap (ad es.
- Sto utilizzando la
less-rails-bootstrap
gemma al Twitter Bootstrap sguardo/tatto, ecc
Qui ci sono le sfide
- ho bisogno di essere in grado di generare dinamicamente le variabili per il CSS in un file che viene mixato in Bootstrap in modo che le variabili vengano raccolte per creare il CSS finale
- Quando un utente modifica una variabile per CS S, lo stile esistente è sostanzialmente invalidato. Ho bisogno del CSS completo ricompilato e scritto su disco, flusso di memoria, o in qualche altro luogo dove posso metterlo tra le mani (ricordate che sta usando
less
) - Ho bisogno di diversi CSS da sputare per sottodominio. Qualche suggerimento su come affrontarlo?
A complicare ulteriormente la questione ...
... visto che io essenzialmente dovrò trovare un modo per compilare il CSS al volo, che significa che devo includere GEMS io in genere non sarebbe in un ambiente di produzione. Le prestazioni saranno molto importanti. C'è un modo per isolare questo? Una volta che il CSS è stato invalidato e rigenerato, potrei prendere il contenuto e scriverlo su disco o memorizzare in qualche memcached/redis/ecc. istanza per le prestazioni.
Qualsiasi commento, anche se solo per indicarmi in una direzione generale, sarebbe apprezzato.
Grazie!
potresti aggiungere regole come '! Important' in uno script aggiunto dinamicamente per quelle cose che cambiano. Quindi non dovresti fare tutto questo ricompilando – AJcodez
Bene parte dell'obiettivo qui è di essere in grado di sfruttare i vantaggi delle variabili in CSS. Tali variabili vengono riutilizzate nei file di origine Bootstrap. Un esempio di ciò è la variabile '@ purple'. Ciò consente all'utente di specificare il colore (tonalità/saturazione, ecc.) Di "viola" che vogliamo utilizzare. Questo viene quindi utilizzato all'interno di Bootstrap in più posizioni. Il CSS normale non funzionerà qui purtroppo. –
Ryan, sto cercando la stessa risposta, visto che voglio sfruttare le variabili Bootstrap. Ovviamente funziona nello sviluppo poiché le cose sono compilate al volo. Sto facendo qualcosa di simile in quanto sto salvando meno file dei miei clienti in lib/assets/stylesheets/customers. Poi nel mio file application.html.erb sto verificando se il sito è stato acceduto con un sottodominio, quindi servendo il file appropriato (sto nominando i file .less dopo il sottodominio). Hai mai capito? In caso contrario, aggiungerò una generosità dei miei punti sulla tua domanda, quindi non la ingannare. – AKWF