【问题标题】:CSS doesn’t work in django site-admin on serverCSS 在服务器上的 django site-admin 中不起作用
【发布时间】:2019-06-05 17:04:31
【问题描述】:

CSSpythonanywhere 服务器上不起作用,但在 localhost 上正常工作 Admin CSS 文件在 pythonanywhere 服务器上为空

我尝试更改DEBUG = True/False

我也尝试过更改 settings.py

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(BASE_DIR, 'static'),
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media')
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static') # пустая папка, сюда будет собирать статику collectstatic
MEDIA_URL = '/media/'

但这无济于事。

【问题讨论】:

  • 你为什么定义STATIC_ROOT两次?你需要运行manage.py collectstatic,你这样做了吗?
  • 我有一篇关于如何正确部署到生产环境的博文,它适用于 AWS,但其中许多也适用于其他环境。你可以找到它here
  • @dirkgroten 我尝试了这两种情况,是的,我使用了manage.py collectstatic 我发现我的错误是在我的服务器上的设置中,因为静态自动在一个应用程序中以错误的方式写入,这是一个原因为什么网站的 CSS 可以正常工作,但管理员却不能。
  • 看起来您可能需要在 PythonAnywhere 仪表板上的 Web 选项卡上设置静态文件映射。见:help.pythonanywhere.com/pages/DjangoStaticFiles

标签: css django python-3.x


【解决方案1】:

管理页面的静态文件保存在:

\YourDjangoProject\venv\Lib\site-packages\django\contrib\admin\static

我通过将此路径添加到 PythonAnywhere Web 选项卡中的静态文件部分解决了这个问题。 将 URL 映射到 /static/admin, 并将目录映射到 /home/username/.virtualenvs/venv/lib/python3.6/site-packages/django/contrib/admin/static/admin/ 这应该为管理页面获取 css 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    相关资源
    最近更新 更多