2017-09-05 33 views
1

我有一個可用的JSFiddle示例。這恰好是一個D3的demo,但是這不是一個直接的問題D3(至少我不這麼認爲):GitHub - > JSFiddle目錄結構錯誤

https://jsfiddle.net/petersmagnusson/dofamupd/# (Ref "1") 

我想正確鏈接到匹配的GitHub庫:

http://jsfiddle.net/gh/get/library/pure/Magnusson-Institute/m008/tree/master/Demo/ (Ref "2") 

但是該鏈接導致JSFiddle站點發生錯誤,說明「數據結構錯誤,目錄結構似乎無效,請問您的URL是否有效?請檢查文檔。

底層的(公共)存儲庫是在這裏:

https://github.com/Magnusson-Institute/m008 

我試圖從的jsfiddle演示開始:

https://github.com/zalun/jsFiddleGithubDemo/tree/master/Demo/ 

和複製粘貼增量,但這似乎只是碰上其他JSFiddle問題(文件緩存)。

(道歉沒有直接聯繫上面的jsfiddle,但StackOverflow上約束了包括代碼,如果你有一個的jsfiddle鏈接,但這個問題是關於鏈接...)

更新:移動它到一個子目錄「Demo」,並更改了鏈接URL。現在至少它加載,但它不能正常運行。

看看上面的(參考1)和(參考2)。代碼是相同的。然而,將它從GitHub中提取出來,然後複製到一個新的jsfiddle中,會產生不同的結果。如果你開始一個新的jsfiddle,複製粘貼html,js和css框架,並添加D3的外部依賴項(https://d3js.org/d3.v4.min.js),那麼新鮮的jsfiddle運行良好。但是從github解除並不是。

JSFiddle創造了一些稍微不同的環境?

回答

2

嘗試創建一個像Demo這樣的摺疊並將文件放入其中。然後,URL看起來像

http://jsfiddle.net/gh/get/library/pure/Magnusson-Institute/m008/tree/master/Demo/

看來,演示文件不能在根被識別。

更新:源顯示的jsfiddle將在新的小提琴加window.onload包裝爲JavaScript,而不是從github上,這會導致你的JavaScript加載比你更早的HTML。然後d3抱怨錯誤。

enter image description here

一個快速的解決方案將是添加window.onload包裝爲你的JavaScript:

window.onload = function() { 
    // all your script 
} 
+0

哈哈!好的,工作。 (總是愛信息錯誤消息...) –

+0

更正,部分工作,現在至少加載環境,但不會運行,環境似乎有點不同。這是一個與我的OP不同的問題,但如果有人快速回答,我會留下最新的問題。但我會關閉並分配答案,因爲你確實回答了原來的問題。 –

+0

這個更新,這解釋了行爲的差異。 thx再次。 –