【问题标题】:How to follow a symbolic link using javascript?如何使用 javascript 跟踪符号链接?
【发布时间】:2012-05-16 22:01:46
【问题描述】:

我正在从目录my_server 运行python -m SimpleHTTPServer 8888,并且我想访问包含读取my_file.csv 的javascript 命令的index.html 文件,但该文件不在my_server 或其子文件夹之一中.

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>

【问题讨论】:

    标签: javascript d3.js simplehttpserver


    【解决方案1】:

    在浏览器中运行的 JavaScript 根本无法访问文件系统(就此而言,浏览器中也没有其他任何东西)。

    客户端只能看到 URI。

    网络服务器有责任为 URI 提供适当的资源。

    您需要编辑/配置 SimpleHTTPServer 以遵循符号链接和/或确保运行服务器的用户有权访问链接另一端的文件。

    【讨论】:

    • SimpleHTTPServer 已经遵循符号链接,但请求是获取 index.html,而不是 my_file.csv。我想我可以请求服务器使用 ajax 提供该文件
    • 不,请求是到/my_server/index.html?file=symbolic_link_to_my_file.csv。服务器可能会将其解析为“文件 index.html 的内容”,但您可以更改它。您还可以编写 JavaScript(可能使用 XMLHttpRequest 对象)向您根据 location 对象中的数据计算出的不同 URL 发出第二个请求。
    【解决方案2】:

    阅读有关d3.csv 命令的文档,您需要向它发送一个完整的 URL。 https://github.com/mbostock/d3/wiki/CSV

    d3.csv(file 命令中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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-17
      • 2012-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-21
      • 1970-01-01
      相关资源
      最近更新 更多