2012-05-16 46 views
1

我從目錄my_server運行python -m SimpleHTTPServer 8888,我想訪問index.html文件,其中包含一個JavaScript命令讀取my_file.csv,但該文件是不是在my_server或其子文件夾中的一個。如何遵循使用JavaScript的符號鏈接?

path/to/my_server $ ln -s /some_path/to/my_file.csv symbolic_link_to_my_file.csv 
path/to/my_server $ python -m SimpleHTTPServer 8888 

如果我創建內部my_server的符號鏈接指向my_file.csv,然後訪問它像這樣:

http://localhost:8888/my_server/index.html?file=symbolic_link_to_my_file.csv 

有什麼辦法,我可以跟着裏面index.html使用javascript這個符號鏈接閱讀my_file.csv

<script> 
    //read URL params 
    ... 
    d3.csv(file, ...) 
</script> 

回答

1

閱讀有關d3.csv命令的文檔,您需要爲其發送完整的URL。 https://github.com/mbostock/d3/wiki/CSV

filed3.csv(file命令中的值是多少?如果您發送的文件類似「filename.csv」,它可能只是將它附加到您當前的URL或當前目錄。您可能想要發送一個像這樣的完整URL(開始時使用斜線): /folder/myfile.csv

如果您在瀏覽器中輸入此URL,它是否會爲您提供CSV文件? http://localhost:8888/my_server/index.html?file=symbolic_link_to_my_file.csv

如果是,那麼file的內容可能應該是/my_server/index.html?file=symbolic_link_to_my_file.csv

+0

它的確如此。我犯了一個愚蠢的錯誤。謝謝! – nachocab

5

的JavaScript在瀏覽器中運行,具有完全沒有訪問文件系統(對於這個問題,也沒有任何其他的瀏覽器)。

客戶端只能看到URI。

Web服務器負責爲URI提供適當的資源。

您需要編輯/配置SimpleHTTPServer以遵循符號鏈接和/或確保服務器運行的用戶有權訪問鏈接另一端的文件。

+0

SimpleHTTPServer已經遵循符號鏈接,但請求是獲取index.html,而不是my_file.csv。我想我可以請求服務器使用ajax提供該文件 – nachocab

+0

不,請求是'/my_server/index.html?file = symbolic_link_to_my_file.csv'。服務器可能會解決這個問題,意思是「文件的內容* index.html *」,但你可以改變它。您還可以編寫JavaScript(可能使用XMLHttpRequest對象),根據'location'對象中的數據向另一個URL發出第二個請求。 – Quentin

相關問題