【发布时间】:2014-05-09 09:09:28
【问题描述】:
这个问题看起来类似于这里的问题: Pythonanywhere, how to use static files? url?,但我不能在那里发表评论。
我已经开始学习 Django,当一切都在 localhost 上运行时,在 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>
一切都会好起来的,但是 django 无法识别“/s/”,它会尝试在 urls.py 中查找视图。 打开链接后:username.pythonanywhere.com/s/assets/js/seen.min.js 我有标准的,调试 404 页面,路径为 urls.py 尝试。
如何解决这个烦人的问题?
【问题讨论】:
-
你是什么意思,“s/ 不被 Django 识别”?它不应该被 Django 识别,静态文件需要由您的静态服务器提供服务。
-
是的,它们根本无法识别 - 它在 urls.py 中搜索它们,而不是提供我的资产
-
你的
INSTALLED_APPS中有django.contrib.staticfiles吗? -
好吧,那么这是您的 PythonAnywhere 设置的问题:您需要对其进行配置,以便
/s/直接访问资产,而不是通过 Django。 -
但这与 Django 无关! settings.py 无关紧要。查看服务器配置 - 我从来没有使用过 PythonAnywhere,所以我帮不了你,但它必须在他们的管理界面中的某个地方。