Search code examples
javascriptcachingbrowser-cachecache-control

Referencing javascript files on my local machine


I know that its possible to reference third party JavaScript files on the web like so:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

Is it possible to reference javaScript file on my local machine by doing something like this?

<script src="file:///C:/folder/custom_javascript.js" type="text/javascript"></script>

I suspect this may be a no-no, since it could be a way for websites to find out what files are on a client's computer...

The reason I would like to do this is because I am developing a javaScript-heavy application on google app engine. I'd like to be able to run and debug revisions to my javaScript files without having to re-upload them every time I make a change. Currently, every time I change something in the javascript, I have to:

  1. Go into the HTML file that I am using to run the javaScript and change a revision variable at the end of the filename so that the old version is not cached somewhere: <script src="resource/custom/js/the_file_im_working_with.js?revision=76" type="text/javascript"></script>
  2. Upload the entire application to google app engine
  3. Change a variable at the end of the url that I am loading in my browser window so that I don't get a cached version of THAT file holding a reference to the cached version of the OTHER javascript file: https://my_app.appspot.com/index.html?revision=26
  4. Re-set any break points in the Firefox debugger because now Firefox thinks its dealing with a different file since the "revision" variable is different.

The result of all this is my concentration being broken and wasted time.

I tried playing around with caching options in the HTML headers and in the browser itself, but I think the files may be being cached by a server somewhere between google and my computer.

Any input or ideas would be much appreciated!


Solution

  • No, you cannot reference a local file from a non-local file. The closest workaround would be to set up a local server on your machine and link to localhost:

    <script src="http://localhost/script.js"></script>