所以我有以下环境; django 1.8
。 apache
ubuntu 14
mod_wsgi
启用了mod x-sendfile
和def foo(request, filename):
response = HttpResponse()
response['Content-Disposition'] = 'attachment; filename={0}'.format(filename)
response['X-Sendfile'] = "/home/amir/DjV/Files/{0}".format(filename)
return response
。
我有一个非常简单的视图来服务文件,如下所示:
url(r'^foo/(.+)/$', foo)
这是关于视图的urlconf:
http://192.168.43.6:8000/foo/uuid.txt
我编写了一个片段,用于生成要在下载列表中显示的文件的绝对路径。如果我在浏览器中输入它们,生成的路径可以正常工作;但是,如果我将它们用作超链接,则单击时会转到空白页面。例如,这里是我提到的片段生成的网址之一:
<a href="192.168.43.6:8000/foo/uuid.txt">192.168.43.6:8000/foo/uuid.txt </a>
它运行正常,我可以下载uuid.txt,但是当我把它放入django模板时,如下所示,它不起作用:
//CreateResponse(HttpStatusCode, T value)
return ResponseMessage(Request.CreateResponse(HttpStatusCode.XX, object));
我的问题是:为什么我的链接在手动输入时工作正常,但在用作超链接时却没有?可能是因为当地的地址?我该如何解决?
答案 0 :(得分:0)
在执行此类操作时,您需要在模板中指定协议:
<a href="http://192.168.43.6:8000/foo/uuid.txt">192.168.43.6:8000/foo/uuid.txt </a>
但是,如果在Django应用程序中处理它们,则不应该以特殊方式对这些URL进行硬编码。检查{%url%}是否可以为您带来好处