Zainstalowałem Gitlab na serwerze lokalnym do oceny, a jedną z kluczowych funkcji dla mnie będzie wyświetlanie plików svg jako obrazów na wiki. Mam gdybym przeciągnąć plik do edytora wiki, która produkuje url jak tak to działa:Gitlab (rails) "surowy" plik typu mime dla plików .svg to "text/plain". Czy można go skonfigurować jako wyjście "image/svg + xml"?
w wiki Markdown:
![my svg diagram](http://server/my-group/my-project/uploads/90cdd5d76a05957ab7cf8854c55a38b8/my-diagram.svg)
wyników na stronie HTML:
<img src="http://server/my-group/my-project/uploads/90cdd5d76a05957ab7cf8854c55a38b8/my-diagram.svg" alt="my svg diagram">
iw aby uzyskać to do pracy, musiałem edytować /opt/gitlab/embedded/service/gitlab-rails/config/initializers/mime_types.rb
dodać linię:
Mime::Type.register_alias "image/svg+xml", :svg
a to g jeśli chcę przeciągnąć plik svg do wiki i przechowywać go w tej sekcji 'uploadów' projektu, ALE, co naprawdę chcę zrobić, to wyświetlić obraz svg z repozytorium git. (tak, że na przykład, gdy zmienia się diagram svg, nie muszę go szukać w wiki, po prostu odbierze go z gałęzi głównej)
Okazało się, że na przykład jest to link do pliku repo:
http://server/my-group/my-project/raw/master/docsfolder/my-drawing.svg
jednak, typ MIME apears być text/plain
dla plików SVG odwołuje ten sposób, a obrazy z ich src
że jak nie będą wyświetlane. Czy istnieje sposób, aby je ustawić image/svg+xml
? wygląda na to, że plik konfiguracyjny mime_types.rb nie ma wpływu na to "surowe" wyjście. lub czy istnieje inny sposób mogę link do pliku repo i uzyskać określony typ MIME?
Próbowałem również <object type="image/svg+xml" data="...
i <embed type="image/svg+xml" src="
i nawet iframe, ale żaden z nich nie działa.
Uwaga: to działa doskonale dla obrazów jpg z repozytorium, ale nie ze zdjęć svg.
Cześć Chris, myślę, że uzasadnienie, dlaczego to nie jest włączone jest zabezpieczenie: W pomostów żylnych można użyć JavaScript, który jest teraz dostarczany w imieniu swojego gitlab przykład tak zły facet lub dziewczyna może uchwycić sesja. –
To ciekawe, nie wiedziałem, że można wstrzyknąć javascript do pliku svg! Wypróbowałem to w systemie, którego użyłem, zmodyfikowałem jak wyżej, poprzez wstrzyknięcie alertu " 'przed zamykającym tagiem SVG w pliku i zaznaczone. Wiki nadal wyświetlało obraz i nie wykonało skryptu javascript. (IE i FF) Być może tag img nie uruchamia skryptu? Wykonał skrypt, jeśli przeglądam plik raw na jego własnej stronie. – 101chris
tak długo, jak zapis notacji znaczników zawiera znacznik '', uznaje svg za "statyczny" svg ... jeśli otworzysz plik w trybie surowym, prawdopodobnie skrypt wykona (nie przetestował) .. ale ponieważ używam gitlab w kontrolowanym środowisku (niewielu znanych użytkowników), akceptujemy tutaj problem bezpieczeństwa. świetne rozwiązanie. dzięki! – Filipiz