2012-05-16 43 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

相关问题