【问题标题】:Django Admin Page is looking very Ugly(without CSS I think)Django 管理页面看起来很丑(我认为没有 CSS)
【发布时间】:2021-02-01 23:32:36
【问题描述】:

最近我将我的 django 网站托管在 EC2 ubuntu 实例上,并在 AWS 上使用 nginx 服务器。当我打开这个网站的管理页面时,它看起来很丑陋,没有 css,但在本地服务器 127.0.0.0:8000 上它工作正常。

我也在浏览器控制台上检查,它给出了这个错误:

GEThttp://jassem.in/static/admin/css/dashboard.css
[HTTP/1.1 404 Not Found 51ms]

The resource from “http://jassem.in/static/admin/css/nav_sidebar.css” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff).
admin
The resource from “http://jassem.in/static/admin/css/base.css” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff).
admin
The resource from “http://jassem.in/static/admin/js/nav_sidebar.js” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff).
admin
The resource from “http://jassem.in/static/admin/css/responsive.css” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff).
admin
The resource from “http://jassem.in/static/admin/css/dashboard.css” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff).
admin

我怎样才能找回我以前的 django 管理页面。仅供参考,我是网络技术和 Django 的新手

【问题讨论】:

  • 生产环境中需要collectstatic文件
  • 我该怎么做?任何想法

标签: django nginx amazon-ec2


【解决方案1】:

您需要运行 collectstatic 命令:

  1. SSH 到您的 EC2 实例
  2. 运行python manage.py collectstatic

假设您已正确设置静态文件,之后它应该可以工作。

【讨论】:

    【解决方案2】:

    尝试运行此命令

    python manage.py collectstatic
    

    如果它不起作用,那么试试这个

    python manage.py collectstatic --no-input
    

    【讨论】:

      【解决方案3】:

      如果问题适用于您项目的所有页面,请尝试使用 collectstatic, Django 提供了一个命令来从所有应用程序中收集静态文件 到一个位置。这简化了在生产环境中提供静态文件的设置。

      打开外壳并运行以下命令:

      python manage.py collectstatic

      您将看到以下输出: 165 个静态文件复制到“/yourproject/static”。 位于每个应用程序的 static/ 目录下的文件 INSTALLED_APPS 设置已复制到全局 /yourproject/static/ 项目 目录。

      然后,编辑 config/nginx.conf 文件并添加:

      location /static/ {alias /home/projects/yourproject/static/;}
      location /media/ {alias /home/projects/yourproject/media/;}
      

      行后:

      location / {
          include /etc/nginx/uwsgi_params;
          uwsgi_pass yourproject;
          }
      

      将 /home/projects/yourproject/ 路径替换为绝对路径 到你的项目目录

      【讨论】:

        【解决方案4】:

        只需在 setting.py 文件中打开你的 DEBUG 模式,它就可以正常工作了。

        DEBUG = True
        

        【讨论】:

        • 切勿在启用调试的情况下将站点部署到生产环境中。见Django
        • 你说得对,我忘了他是在生产模式。只是我有同样的问题,我通过打开调试模式解决了它,但我仍然处于开发模式。
        【解决方案5】:

        这是我的第一次部署,我尝试了很多东西。最后,这对我有用:

        1. 正在运行python manage.py collectstatic
        2. server{} 块中找到 nginx.conf 文件,添加:location /static/ {alias /home/projects/yourproject/static/;} 然后从 bash 终端运行 sudo service nginx restart
        3. 在我的settings.py 文件中添加:STATIC_ROOT = os.path.join(BASE_DIR, 'static')STATIC_URL = '/static/'

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-02
          • 1970-01-01
          • 2013-08-27
          • 2015-10-20
          • 1970-01-01
          • 1970-01-01
          • 2014-01-08
          • 2023-03-14
          相关资源
          最近更新 更多