我在 vercel 上托管了我的 django 项目,每个静态文件都正常工作。 djangoviews.py 函数
def view_pdf(request):
file_path = os.path.join(settings.BASE_DIR, 'static', 'media', 'Shashank_Joshi_resume.pdf')
with open(file_path, 'rb') as pdf:
response = HttpResponse(pdf.read(), content_type='application/pdf') instead of mimetype
response['Content-Disposition'] = 'inline; filename="Shashank_Joshi_resume.pdf"'
return response
html 模板
<div class="resume">
<input type="button" value="Resume" class="btn btn-primary" onclick="window.open('view_pdf')">
</div>
我收到错误 /view_pdf 处出现 FileNotFoundError [Errno 2] 没有这样的文件或目录:'/var/task/static/media/Shashank_Joshi_resume.pdf'
但是我的 html 模板中有一个按钮,当我单击它的显示文件在 vercel 上未找到错误时,会显示一个 pdf 文件,但当我在本地运行它时,它的工作完全正常。 github 存储库也是最新的。
您是否在settings.py中设置了MEDIA_ROOT?检查一下
正如 ruddra 所说,运行你的collectstatic
最后你可以调试你的代码,比如打印你的文件路径
我希望这有帮助