我在Django生成的超链接不存在

2024-03-29 15:23:03 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有以下环境;django 1.8。^启用mod_wsgimod x-sendfile的{}在ubuntu 14上。你知道吗

我有一个非常简单的视图来处理文件,如下所示:

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

下面是我的urlconf关于视图:

url(r'^foo/(.+)/$', foo)

我编写了一个代码片段,它生成要在下载列表中显示的文件的绝对路径。如果我在浏览器中输入这些路径,生成的路径就可以正常工作;但是如果我将它们用作超链接,当单击时,它将转到空白页。例如,这里有一个由我提到的代码段生成的URL:

http://192.168.43.6:8000/foo/uuid.txt

它运行良好,我可以下载uuid.txt文件,但当我将其放入django模板时,它不起作用:

<a href="192.168.43.6:8000/foo/uuid.txt">192.168.43.6:8000/foo/uuid.txt </a>

我的问题是:为什么我的链接在手动输入时工作正常,而在用作超链接时工作不正常?会不会因为是本地地址?我该怎么修?你知道吗


Tags: 文件django路径txt视图modformatwsgi
1条回答
网友
1楼 · 发布于 2024-03-29 15:23:03

在执行以下操作时,需要在模板中指定协议:

<a href="http://192.168.43.6:8000/foo/uuid.txt">192.168.43.6:8000/foo/uuid.txt </a>

但是,如果在Django应用程序中处理url,则不应以这种方式对其进行硬编码。检查{%url%}模板是否对您有利

相关问题 更多 >