django-compressor
lets you do this as well as optimize your site by condensing all of your required JS or CSS into one file and optimizing file size.
UPDATE: By default, compressor will convert relative urls into absolute urls using STATIC_URL
. If you download the development version, it comes with a django template engine parser which lets you use all django template code directly in your CSS files, such as the {% static %}
tag.
https://github.com/jezdez/django_compressor
Enable the TemplateFilter
in settings.py after installing to parse your js or css files via the template engine.
COMPRESS_JS_FILTERS = [
'compressor.filters.template.TemplateFilter',
]
Now any JS within {% compress js %} blocks will be parsed by the django template language...
{% compress js %}
<script src="/my_script.js" type="text/javascript"></script>
{% endcompress %}
// my_script.js
alert('{{ STATIC_URL|escapejs }}');
You asked for the best way -- I think this is the best. Certainly better than serving dynamic files.