PythonAnywhere上的Django不识别静态URL

4 投票
1 回答
1546 浏览
提问于 2025-04-18 05:57

这个问题看起来和这里的一个问题很相似:Pythonanywhere,如何使用静态文件?网址?,但我无法在那儿评论。

我刚开始学习Django,当我在本地运行一切正常时,到了PythonAnywhere就不行了。

projectname/settings.py文件中,我设置了:

STATIC_ROOT = "/home/*username*/*projectname*/Static/"
STATIC_URL = "/s/"

甚至还设置了应用中的静态文件夹的URL。

在尝试运行

python3 manage.py collectstatic

时,所有的*.js、*.css文件和图片都被复制到了projectname/Static文件夹里。

但是……在应用启动后,没有一个文件被识别出来。我设置了

{% load static %}

并使用了标签

{% static "assets/css/theme.css" %}

在源代码中,我可以看到正确的css文件链接:

<script src="/s/assets/js/seen.min.js"></script>

本来一切都应该没问题,但“/s/”没有被Django识别,它试图在urls.py中查找视图。

当我打开链接username.pythonanywhere.com/s/assets/js/seen.min.js时,看到的是标准的调试404页面,显示urls.py尝试的路径。

怎么解决这个让人烦恼的问题呢?

1 个回答

4

你需要在这个网页应用上添加一个静态文件的映射。可以在网页应用的标签里找到“静态文件”这个标题。

根据我对你设置的了解,你需要把“/s/”放在网址那一栏,把“/home/*用户名*/*项目名称*/Static/”放在目录那一栏。

撰写回答