Zakładając, że korzystasz z serwera WWW Apache, możesz skonfigurować dyrektywę Alias, aby wyświetlać obrazy z katalogu spoza normalnego dokumentu docroot. Potrzebujesz dostępu do edycji konfiguracji VirtualHosts lub innej możliwości tworzenia instrukcji aliasów (np. Za pośrednictwem panelu sterowania).
Aby zobaczyć, jak to działa, załóżmy, że przechowujesz swoje pliki jekyll w katalogu o nazwie "/ web/jekyll". Aby uzyskać katalog obrazów, wykonaj następujące czynności:
Dodaj katalog "_images" wraz z podstawowym drzewem jekyll. Kończący się z czymś takim:
_config.yml
_images/
_layouts/
_posts/
_site/
index.md
aktualizacji konfiguracji Apache, aby dodać dyrektywę Alias jak:
Alias /images /web/jekyll/_images
przeładować config apache i uruchomić Jekyll zbudować witrynę.
Ponieważ nazwa katalogu obrazu zaczyna się od podkreślenia, Jekyll nie popchnie/skopiować go do _site wyjściowego podczas kompilacji. Apache z powodzeniem będzie obsługiwał większość plików z twojego katalogu _site jak zwykle, ale gdy zobaczy coś takiego jak "http: //jekyll/images/test.jpg", zamiast szukać pliku pod "/ web/jekyll/_site/_images/test.jpg ", wyświetli go z" /web/jekyll/_images/test.jpg ".
Nawiasem mówiąc, jak trochę więcej separacji zawartości źródło treści i wyjściowego niż JEKYLL wartością domyślną. Więc moja konfiguracja struktury katalogów w następujący sposób:
/web/jekyll/html/
/web/jekyll/images/
/web/jekyll/source/
/web/jekyll/source/_config.yml
/web/jekyll/source/_layouts
/web/jekyll/source/_posts
/web/jekyll/source/index.md
z następującymi możliwości określonej w _config.yml
destination: ../html
i dyrektywa konfiguracji apache alias z:
Alias /images /web/jekyll/images
Jekyll jest działa w katalogu "/ web/jekyll/source", ale dane wyjściowe są wysyłane do katalogu "/ web/jekyll/html". Podobnie jak w pierwszym przykładzie, wywołania "http: //jekyll/images/test.jpg" są wysyłane z "/web/jekyll/images/test.jpg". Ta konfiguracja tak naprawdę nie ma wpływu na perspektywę wyświetlania witryny. Po prostu lubię czystszą separację między plikami źródłowymi, w pełni wypalonymi plikami wyjściowymi i obrazami, które działają przez alias.
Widzę, jak to zadziała, ale powinienem był wspomnieć, że naprawdę * podoba mi się katalog z obrazami znajdujący się w katalogu _sites, ponieważ usprawniłoby to synchronizację całej sprawy z serwerem. Jakieś dalsze spostrzeżenia? (BTW, dziękuję za wskazówki dotyczące struktury strony.) Doceniam twoje poświęcenie czasu.) –
Nie jestem pewien, jak inaczej to zrobić w tej chwili. Jedna uwaga na temat rsync, z drugim przykładem ze strukturą aktualizacji, chodziło tylko o zsynchronizowanie wszystkiego w "/ web/jekyll /" z serwerem. Katalogi "html" i "images" będą faktycznie używane, a katalog "source" po prostu zapewni kopię zapasową kodu poza siedzibą. –
Jeszcze jedna myśl się wydarzyła. Będziesz chciał zachować ostrożność z dowiązaniem symbolicznym w dowolnym miejscu, do którego prowadzi wyjście Jukill. Jeśli masz kod, który pozwala na obecność dowiązania symbolicznego, ale zostanie on uszkodzony podczas aktualizacji, możliwe, że jekyll może usunąć wszystkie twoje obrazy źródłowe. –