【发布时间】:2019-01-16 21:23:23
【问题描述】:
我在 Django 中创建了一个新项目。在我的本地计算机上,一切正常,所以我试图将其公开。我使用DigitalOcean 作为主机。我找到了 2 个在 DigitalOcean VPS 上发布 Django 项目的教程。一种用于安全,一种用于发布。
Django 安全教程:Link
Django项目发布:Link
在我遵循教程之后,除了一件事之外,一切都很好。除了静态 css 文件之外,所有文件(图像、JS)都正确加载,这真的很奇怪。我认为这是一个 Nginx 问题。我是 Nginx 的新手,所以我不知道该怎么做。我尝试了几个 Stackoverflow Questions 并搜索了很多这个问题,但我不知道该怎么做。 css 文件位于名为 static 的文件夹的子文件夹中。 Image of the static files structure
静态文件settings.py:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
Nginx:
server {
listen 80;
server_name 142.93.100.9;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/djangodeploy/bhitweb2;
}
location /media/ {
root /home/djangodeploy/bhitweb2;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/djangodeploy/bhitweb2/bhitweb2.sock;
}
}
CSS 文件网址:142.93.100.9/static/css/form.css
CSS 错误:
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.10.3 (Ubuntu)</center>
</body>
</html>
HTML 模板链接到样式表:
{% load static %}
<link rel="stylesheet" type="text/css" media="screen" href="{% static 'css/main.css' %}/" />
有人知道解决办法吗?
【问题讨论】:
-
您最终得到
Not Found错误?你确定 js 文件是从 Nginx 正确加载的吗?它可以从您的浏览器缓存中加载。 -
@TonyEight 是的,当我尝试访问 HTML 中的 css 文件链接时出现 404 错误。 Javascript 文件已正确加载。我还以为是浏览器缓存的问题,所以我清除了缓存,但这也不起作用。
-
您能提供一个未找到的 CSS 文件的 URL 示例吗?以及模板代码的 sn-p 以查看如何插入它们。
-
@TonyEight 当然。我将它们添加到我的问题中。
-
如果 javascript 文件运行良好,并且与 css '/static/' 位于同一目录中,那么问题不应该是您的配置,而是您的文件夹结构中的某些内容或缺少文件。跨度>
标签: css django nginx web-deployment