我在django中生成的超链接不起作用

时间:2015-12-06 14:17:03

标签: python html django hyperlink

所以我有以下环境; django 1.8apache ubuntu 14 mod_wsgi启用了mod x-sendfiledef 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));

我的问题是:为什么我的链接在手动输入时工作正常,但在用作超链接时却没有?可能是因为当地的地址?我该如何解决?

1 个答案:

答案 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%}是否可以为您带来好处

相关问题