2016-01-29 17 views
0

有對WebGL的一個很好的教程在此鏈接:我怎麼可以運行HTML5文檔與IPython的筆記本WebGL的帆布

http://learningwebgl.com/blog/?p=571

,我用這個例子作爲我的出發點,這個問題:

http://learningwebgl.com/lessons/lesson06/index.html

因此,它在我的瀏覽器上運行良好。我複製了源代碼和所需的庫文件:

- glMatrix.html 
- webgl-utils.js 

在我的電腦上。現在我可以很好地在瀏覽器上再次運行它們。

在HTML源文件,這些libaries被稱爲外部庫是這樣的:

<script type="text/javascript" src=".\glMatrix.js"></script> 
<script type="text/javascript" src=".\webgl-utils.js"></script> 

他們位於同一目錄作爲我的HTML源文件,即kvBox.html。

現在我想從筆記本電腦內運行這個html。我輸入:

from IPython.core.display import HTML 

def putHTML(): 

    source = open("kvBox.html", "rb").read().decode() 
    return HTML(source) 


putHTML() 

同樣的屏幕在那裏,沒有框和畫布。筆記本上的輸出線沒有錯誤信息。

當我看着筆記本Server控制檯我看到這些錯誤:

[I 21:56:51.077 NotebookApp] 302 GET /notebooks/.%5CglMatrix.js?_=1454010913066 
(::1) 15.64ms 
[I 21:56:51.077 NotebookApp] Refusing to serve hidden file, via 404 Error 
[W 21:56:51.077 NotebookApp] 404 GET /files/.%5CglMatrix.js (::1) 0.00ms referer 
=http://localhost:8888/notebooks/Untitled4.ipynb?kernel_name=python3 
[I 21:56:51.093 NotebookApp] 302 GET /notebooks/.%5Cwebgl-utils.js?_=14540109130 
67 (::1) 0.00ms 
[I 21:56:51.093 NotebookApp] Refusing to serve hidden file, via 404 Error 
[W 21:56:51.093 NotebookApp] 404 GET /files/.%5Cwebgl-utils.js (::1) 0.00ms refe 
rer=http://localhost:8888/notebooks/Untitled4.ipynb?kernel_name=python3 

我用Google搜索,並期待throgh SO爲包括外部庫的筆記本電腦。大多數情況下,我發現在github上給出的noteook擴展。我需要一個解決方案爲我自己的補充。

最近的問題是這個項目:

How to add external javascript file in Ipython notebook

於是,我就用%% HTML命令對上述外部庫。輸出線沒有錯誤,但在控制檯上出現相同的拒絕錯誤。

編輯:

讀書,並努力還沒有工作這麼多不同的建議後,我有一種變通方法。我自己寫了一個簡單的包含例程。我將庫代碼合併到我的源html中,在上面的「source」字符串中,並且一切正常。

+0

我不知道如何包含外部JS庫,但我通過蠻力將代碼添加到HTML文檔中,作爲作爲normla內部JavaScript,並且它工作正常。 – user2800464

回答

0

URL中的路徑分隔符是/而不是\。見the documentation

您的瀏覽器似乎在執行錯誤恢復,而IPython不是。

因此您收到404錯誤的/files/.%5CglMatrix.js%5C是編碼\一個URL),而不是200個OKS爲/files/glMatrix.js

使用正確的URL。

+0

我必須嘗試所有可能的組合絕對或相對路徑,反斜槓或正斜槓,與先驗點或沒有,或根本沒有一個skas,但我會回去嘗試,因爲我會需要它在長遠來看其他幾個人。 – user2800464

+0

我用正斜槓再次嘗試。現在我在Notebook輸出單元上得到:「mat4 not found」錯誤。 mat4生活在glMatrix.js中。在jupyter控制檯上,我收到「302 GET/NOTEBOOKS/glMAtrix.js?_ = ...」錯誤。我檢查了nbextensions dir,我的筆記本開始dir;磅在那裏。我試過再次通過重新定義擴展名:「notebook.nbextensions.install_nbextension(path =」C:/ ...「.302/GET和mat4未找到錯誤 – user2800464

+0

我想我找到了與反斜槓相關的錯誤;但不在我的代碼中 - 在處理程序代碼中。 – user2800464

0

我想我找到了錯誤的根本原因。正如Quentin指出的那樣,它與反斜槓字符有關。但不是在我的代碼。它在處理程序代碼中。我不確定它是在Tornado端還是在Notebook端,但是在收集路徑信息的處理程序代碼中,os.path.join命令創建反斜槓;正常的Python,但不是很好的Javascript。

下面是我在我原來的龍捲風應用程序創建的跟蹤片:

WARNING:tornado.access:404 GET /img%5Cbaseball.jpg (127.0.0.1) 0.00ms 
handler_path: ./images\BouncingBallDemo\baseball.jpg 
app_path: ./images\baseball.jpg 
img_src: /img\baseball.jpg 

在與正斜槓代替反斜槓,我的代碼工作確定我的龍捲風應用。我相信類似的事情發生在我原來的筆記本電腦問題上。我不確定我自己是否能夠採取解決方法,我會檢查。

相關問題