Buduję witrynę w Railsach 3.2. Minęły 3 lata, odkąd dotknąłem Railsów lub Ruby, więc jestem zardzewiały na obu, a ostatnim razem, gdy używałem szyn, był Rails 2.3. Nie trzeba dodawać, proszę wybaczyć wszystkie "proste" pytania poniżej.Dynamiczne CSS w potoku Railsowym, kompilacja w locie
Oto specyfikacje
- Wielu Tennant CMS/Sklep Site
- Każdy "Store" (aka subdomeny) może mieć swój wygląd, styl itp. dzięki dostosowaniom CSS
- Dostosowania można wykonywać w interfejsie użytkownika w aplikacji, umożliwiając użytkownikowi zmianę podstawowych zmiennych funkcji Bootstrap (tj.
@textColor
,@bodyBackground
itp)
- Dostosowania można wykonywać w interfejsie użytkownika w aplikacji, umożliwiając użytkownikowi zmianę podstawowych zmiennych funkcji Bootstrap (tj.
- Używam
less-rails-bootstrap
gem do Twitter Bootstrap przeglądowej/Feel itp
Oto wyzwania
- muszę być potrafi dynamicznie wyprowadzać zmienne dla CSS do pliku, który miesza się z Bootstrap, więc zmienne są pobierane w celu utworzenia ostatecznego CSS
- Gdy użytkownik zmienia zmienną dla CS S, istniejący styl jest zasadniczo unieważniany. Potrzebuję pełnego CSS zrekompilowanego i zapisanego na dysku, strumieniu pamięci lub w innym miejscu, w którym mogę dostać się do niego (pamiętaj, że to jest użycie
less
) - Potrzebuję różnych CSS do wypluwania na poddomeny. Wszelkie sugestie, jak się do tego podejść?
bardziej komplikuje sprawę ...
... biorąc pod uwagę, że w istocie będzie musiał znaleźć jakiś sposób, aby skompilować CSS w locie, co oznacza, że muszę to perełki ja zazwyczaj nie będzie w środowisko produkcyjne. Wydajność będzie bardzo ważna. Czy istnieje sposób, aby to odizolować? Gdy CSS zostanie unieważniony i zregenerowany, mogę pobrać zawartość i albo zapisać ją na dysku, albo przechowywać w niektórych plikach memcached/redis/etc. wystąpienie dla wydajności.
Wszelkie komentarze, nawet jeśli tylko wskaże mi w ogólnym kierunku będą mile widziane.
Dzięki!
można dodać reguły takie jak '! Important' w dynamicznie dodawanym skrypcie dla tych rzeczy, które się zmieniają. Wtedy nie musiałbyś robić całej tej rekompilacji – AJcodez
Cóż, celem części tutaj jest możliwość wykorzystania zalet zmiennych w CSS. Te zmienne zostaną ponownie wykorzystane w plikach źródłowych Bootstrap. Przykładem tego jest zmienna '@ purple'. Pozwala to użytkownikowi określić, jaki kolor (odcień/nasycenie, itp.) "Purpurowego", który chcemy użyć. Jest to następnie używane w Bootstrap w wielu miejscach. Regularne CSS nie będzie działać tutaj niestety. –
Ryan, szukam takiej samej odpowiedzi jak ty, ponieważ chcę wykorzystać zmienne Bootstrap. Oczywiście, że pracuje nad rozwojem, ponieważ rzeczy są kompilowane w locie. Robię coś podobnego, ponieważ oszczędzam mniej plików klientów w lib/assets/stylesheets/clients. Następnie w moim pliku application.html.erb sprawdzam, czy strona była dostępna z subdomeną, a następnie podałem odpowiedni plik (nazywam pliki .less po poddomenie). Czy kiedykolwiek to zrozumiałeś? Jeśli nie, dodam nagrodę w postaci własnych punktów na twoje pytanie, więc go nie podrabiam. – AKWF