Question

I'm running python -m SimpleHTTPServer 8888 from the directory my_serverand I want to access index.html file that contains a javascript command that reads my_file.csv, but the file is not in my_serveror one of its subfolders.

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

If I create a symbolic link inside my_server that points to my_file.csv and then access it like this:

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

is there any way I could follow this symbolic link with javascript inside index.html to read my_file.csv?

<script>
    //read URL params
    ...
    d3.csv(file, ...)
</script>
Was it helpful?

Solution

Reading the docs on the d3.csv command you need to send it a full URL. https://github.com/mbostock/d3/wiki/CSV

What is the value of file in the d3.csv(file command? If you're sending it something like "filename.csv", it may just be appending that to your current URL or current directory. You probably want to send it a full URL like this (with a slash at the beginning): /folder/myfile.csv

If you type this URL into your browser does it give you the CSV file? http://localhost:8888/my_server/index.html?file=symbolic_link_to_my_file.csv

If it does then the contents of file should probably be /my_server/index.html?file=symbolic_link_to_my_file.csv.

OTHER TIPS

JavaScript, running in the browser, has no access to the file system at all (for that matter, nor does anything else in the browser).

The client only sees URIs.

It is the responsibility of the webserver to serve up the appropriate resource for the URI.

You need to edit / configure SimpleHTTPServer to follow the symlink and / or make sure the user the server is running at has permission to access the file at the other end of the link.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top