【问题标题】:Deploying my Django app on CentOS, styles stopped loading在 CentOS 上部署我的 Django 应用程序,样式停止加载
【发布时间】:2017-10-29 21:45:00
【问题描述】:

我有一个 Django 1.11 应用程序,我想在 CentOS 7 服务器上部署它,我通过 Virtualbox 5.1.18 从 Windows 10 主机上的 Ubuntu 16.10 来宾通过终端访问该应用程序。

在 CentOS 上重建我的工作环境并克隆存储库后,我决定运行一个开发服务器来检查所有 python 包是否已成功安装和加载(我去了 python manage.py runserver 0:0:0:8000 to能够从 Ubuntu 来宾连接到应用程序)。

我的问题如下 - 虽然应用程序运行良好,但出于某种原因CentOS 上的应用程序没有“看到” .css 文件,导致样式无法加载。我仔细检查了文件是否在那里,并且在 settings.py 我有:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)

所以相对路径没有改变,但样式在 CentOS 上没有加载,而它们在 Ubuntu 上运行良好。

有谁知道如何解决这个问题以及是什么原因造成的?

编辑:
由于没有有用的答案或评论,我现在使用 uwsgi 和 nginx 部署了应用程序,问题显然仍然存在。请问我现在能得到一个有用的答案吗?

更新:
感谢 Haroldo_OK,我意识到可能有问题的是前端的开发方式:

<head>
      <base href="http://127.0.0.1:8000" />
      <link rel="stylesheet" href="{% static 'css/cover.css' %}">

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="../../favicon.ico">

    <title>Kontakt</title>

    <!-- Bootstrap core CSS -->
    <link href="../../dist/css/bootstrap.min.css" rel="stylesheet">

    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <link href="../../assets/css/ie10-viewport-bug-workaround.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="cover.css" rel="stylesheet">

    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
    <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
    <script src="../../assets/js/ie-emulation-modes-warning.js"></script>

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>

任何人都知道我应该如何更改它,我应该下载什么以及将它放在哪里进行修复?我真的不知道前端...

【问题讨论】:

  • 服务器被杀有什么关系?它没有被杀死,它只是不加载 .css 请注意,我从 Ubuntu 运行的开发服务器确实加载了 .css,所以我看不出这与它有什么关系。
  • 我做到了,包括 cmets,我很确定“它没有经过安全审计或性能测试”与加载 .css 无关
  • 尝试在网络选项卡中查看浏览器的内置调试器;查看那里出现了哪些 HTTP 错误消息。
  • 哇,好主意,我不敢相信我没有想到这一点。我现在看到了问题:一位同事使用了来自 Django Girls / Bootstrap 的一些教程模板,它引用了来自 localhost 的 css。我会发布更新。

标签: css django centos7


【解决方案1】:

静态 URL 的路径应该是您的托管平台 CentOS 7 服务器

服务器上的静态 URL 路径与本地路径不同

更正您的静态 URL 路径

【讨论】:

  • 他的代码似乎没有迹象表明这会是问题所在。
猜你喜欢
  • 2021-11-28
  • 2016-01-24
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-22
  • 2021-10-15
相关资源
最近更新 更多