2010-10-03 11 views
13

Próbuję wdrożyć nasze obrazy do CDN. Obecnie css ma względne ścieżki do obrazów na naszej stronie. Ścieżki te będą musiały obsługiwać lokalizację obrazu CDN. Czy ktoś ma porady, w jaki sposób mogę to zrobić?Ścieżki obrazu w CSS do obsługi CDN

Lub jeśli ktoś ma dobry samouczek dotyczący instalacji na CDN.


W ten sposób doszłam do tego.

  1. użyłem Sass - http://sass-lang.com/
  2. Mam mixin nazwie cdn.scss z zawartością jak $ IMAGE_PATH: "/ images /";
  3. Zaimportuj ten mixin w stylu sass @import "cdn.scss"
  4. Zaktualizuj ścieżki obrazu jako takie: background: url ($ image_path + "image.png");
  5. Na rozmieszczenia zmienić zmienną $ IMAGE_PATH w mixin.scss a następnie ponownie Sass

UPDATE

Używamy bash aby zaktualizować plik

cat > preprocess/sass/_cdn.scss <<EOT 
\$image_path: "//CDN_URL/"; 

Przykład kodu w _cdn .scss

$image_path: "/public/images/"; 

To domyślnie działa lokalnie , ale po naciśnięciu przycisku produkcyjnego uruchamiamy skrypt bash do aktualizacji przy użyciu lokalizacji cdn.

+0

Od tego czasu zmieniłem plik cdn.scss na _cdn.scss, więc nie wypisuje pliku, ale jest używany tylko jako mixin. – jhanifen

Odpowiedz

16

Prawdopodobnie najłatwiej byłoby przechowywać zarówno obrazy, jak i plik CSS na CDN. Ścieżki obrazu w twoim pliku CSS odnoszą się do samego pliku CSS, więc nie musisz w ogóle zmieniać swojego CSS.

Jeśli to nie jest opcja, utkniesz, umieszczając w swoim arkuszu stylów w pełni kwalifikowane adresy URL. Teraz, jeśli naprawdę chcesz, możesz dynamicznie generować plik CSS w locie i wykonać trochę wymiany, aby nie trzeba było w twardy sposób CDN w swoim arkuszu.

+0

Nie możemy mieć ścieżek obrazów względnych. Zdecydowaliśmy się użyć skompilowanego SASS dla arkuszy stylów i skryptu, który uruchamiamy podczas wdrażania, aby zmienić zmienne SASS. Ale w większości przypadków twoja odpowiedź jest poprawna. – jhanifen

+1

@jhanifen Nice. Czy mógłbyś bardziej szczegółowo opisać, w jaki sposób skrypt zmienia zmienną SASS? Czy jest to skrypt bash, czy coś innego? – FloatingRock

Powiązane problemy