@peterbe So, the problem is this. Using static does not work, as it is expecting to load a resource from STATIC_ROOT so, all it outputs is /static/gccrashes.json

Now, if I try to use url() I run into the problem that the pattern in urls.py expects a product and version passed to the view so, I need to do something like below or I get a NoReverseMatch error:

    url('crashstats.gccrashes_json', product, selected_version)

The problem with that though is it returns gccrashes/json_data but with products/Firefox/versions/30.0a1 appended. Because the product/version can change before the next Ajax request, having this part of the baseURL will not work.

I suppose I can have another pattern in urls.py for gccrashes_json that does not expect anything passed to it, but I am unsure if that is a good idea. Should I just go ahead and do that? With all that said though, cool URLs don't change right ;)