我在details.html中有以下结构
<p>Files:
{% for file in files %}
<p><a href="{{ file }}">{{ file.name }}</a></p>
{% endfor %}
</p>
此链接返回正确的网址。
http://localhost/media/file.pdf
但是,每次单击而不是下载文件时,它都会返回错误404.
执行此操作的正确方法是什么?
答案 0 :(得分:2)
<p><a href="{{ file }}" download>{{ file.name }}</a></p>
如果您尝试查询数据库并在客户端打印,那么在您的锚链接中写一条正确的路径
示例:
<p><a href="/media/{{ file }}" download>{{ file.name }}</a></p>
答案 1 :(得分:1)
这是在本地开发服务器上还是在生产中?
我的猜测是你没有configured Django to serve /media/ files。
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
但是,请注意文档中的警告:
这不适合生产使用!