我正在尝试url-names
在我的 javascript/jquery 文件中使用 AJAX 请求,并且我找到了几种可以解决此问题的解决方案。我目前正在使用的是以下。
我定义了一个 url 来提供 javascript 文件:
网址.py
url(r'^js/([\w\.\-]+)/([\w\.\-]+)/$', 'views.get_javascript_file', name='get_javascript_file')
url(r'^getmoredicus/$', 'load_discussions', name="load-discus"),
然后我定义呈现 javascript 文件的视图。
视图.py:
def get_javascript_file(request, app_name, js_file):
'''
Used to request and serve rendered javascript/jquery files.
'''
return render_to_response("%s/%s.js" % (app_name, js_file),
context_instance=RequestContext(request))
现在在 html 文件中,我们可以使用get_javascript_file
url 来获取渲染的 javascript 文件。
.html 文件:
<script type="text/javascript" src="{% url get_javascript_file 'myapp' 'jsfile' %}"></script>
现在在任何 javascript 文件中,我都可以url-names
通过{% url url-name %}
.
问题:
1) 是否有更好/更快的方式url-names
在 javascript 文件中使用?我知道已经创建了一些应用程序来实现这一点,但我希望获得每个人(django 专家)对实现这一目标的最佳方式的意见。
2)我们可以在第一次渲染后缓存渲染的javascript文件,以便在每个后续请求中,我们不必再次渲染它们吗?如果是,那么我们该如何去做。
3)在这种方法中,我们从他们的应用程序文件夹中渲染脚本文件。STATIC_ROOT
有没有办法从get_javascript_file
视图中访问位于其中的静态文件?我只是在考虑这将如何在生产环境中工作。从他们的应用程序文件夹中访问静态文件而不是将它们放入STATIC_URL
并从那里访问它们是一种好习惯吗?
笔记
我知道已经有一些关于 SO 的问题可以回答这个问题的某些部分,但我只是想一劳永逸地为未来的 django 学习者了解这一点。最好的使用方法url-names
是javascript
什么script
?