PythonAnywhere上的Django不识别静态URL
这个问题看起来和这里的一个问题很相似: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/”放在目录那一栏。