2015-02-21 10 views
6

Mam fragment kodu w notesie iPython, który programowo generuje folder o nazwie "dźwięk" zawierający następujące pliki: index.html, canvas.js, graph.js i style.css.Wyświetlanie pliku HTML z JS wewnątrz notatnika iPython

Jeśli otwieram plik index.html w przeglądarce, widzę dokładnie to, czego chcę: wykres z ładną animacją JS reprezentującą wektory z procesu, który modeluję.

network visualization

Jednak chciałbym, aby wyświetlić plik HTML z wewnątrz notebooka samego ipython.

Do tego mam wpisać następujący kod:

from IPython.display import IFrame 
IFrame('/Users/useird/Desktop/sound/index.html', width=700, height=350) 

która zwraca następujące: 404 error ipython notebook

nie jestem ekspertem z CSS lub JS, ale myślę, że ipython może wyświetlać js wewnątrz iframe, więc co tu jest nie tak?

Dzięki

+3

Serwer sieci web tornado nie może uzyskać dostępu do plików znajdujących się nad katalogiem startowym, dlatego możesz umieścić folder dźwiękowy w folderze lub pod folderem, na którym uruchomiłeś serwer notebook? – Jakob

+0

To zadziałało. Dziękuję Jakob –

Odpowiedz

6

Aby wyraźnie odpowiedzieć na to pytanie, ponownie zamieszczam tutaj mój komentarz.

IPython używa serwera WWW Tornado do obsługi stron html. Domyślnie serwer internetowy nie może uzyskać dostępu do plików znajdujących się nad katalogiem startowym. W przeciwnym razie byłaby to poważna ekspozycja na bezpieczeństwo. W związku z tym, aby udostępnić dane dla serwera internetowego, należy umieścić go w katalogu początkowym notebooka lub w podkatalogu.

Dotyczy to nie tylko stron HTML, ale także obrazów, które mają być wyświetlane przy użyciu znaczników.

+0

Dziękuję Jakob –

Powiązane problemy