Luc*_*cio 6 server nginx django
我用 Django + Nginx(还有其他东西)设置了一个 Trusty VM 。
服务器正在工作,我看到“欢迎使用 Django”页面。但是当我进入servername/admin它时,它会加载 HTML 页面但无法加载静态内容。
并且管理页面有这个指向静态内容的链接:
<link rel="stylesheet" type="text/css" href="/static/admin/css/base.css" />
<link rel="stylesheet" type="text/css" href="/static/admin/css/login.css" />
Run Code Online (Sandbox Code Playgroud)
两个 CSS 文件都给了我 404,如 Nginx 日志所示:
192.168.56.1 - - [05/Jun/2014:12:04:09 -0300] "GET /admin HTTP/1.1" 301 5 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0"
192.168.56.1 - - [05/Jun/2014:12:04:09 -0300] "GET /admin/ HTTP/1.1" 200 833 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0"
192.168.56.1 - - [05/Jun/2014:12:04:10 -0300] "GET /static/admin/css/base.css HTTP/1.1" 404 142 "http://ubuntu-server/admin/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0"
192.168.56.1 - - [05/Jun/2014:12:04:10 -0300] "GET /static/admin/css/login.css HTTP/1.1" 404 142 "http://ubuntu-server/admin/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0"
Run Code Online (Sandbox Code Playgroud)
我认为错误出在我的nginx.conf文件上,但不知道如何解决。这是站点树:

主要文件:urls.py, settings.py.
这很可能是 django 或 Nginx 中的配置问题
您要检查两件事:
你的静态文件在 settings.py 中配置正确吗?对于基本的django页面,这些设置不是必须的,但是对于你的静态文件,你需要配置静态文件。这对于生产使用来说不是必需的,因为网络服务器在那里提供静态文件。他们收集了吗?配置完成后,您可能必须运行python manage.py collectstatic.
例如,
#settings.py
INSTALLED_APPS += [django.contrib.staticfiles,]
STATIC_URL = '/static/'
STATIC_ROOT = '/your_path/.../static/'
# This collects all files in /static/ directories and puts them in the static ROOT folder.
python manage.py collectstatic
Run Code Online (Sandbox Code Playgroud)Django 本身不提供静态文件(除非您DEBUG=True在 中设置settings.py),因此您必须在引擎 x 中添加配置以使其为静态文件提供服务。您可能需要重新启动 nginx 和/或autoindex on;在 nginx.conf 中添加/static/ 的配置。
请参阅部署静态文件。
在开发中,您可能还需要将/static/url添加到您的 urls.py(在开发中),而不仅仅是设置。
小智 5
我遇到了同样的问题,nginx 配置的一个细微变化为我解决了这个问题。
这是我用于提供静态文件的 nginx 配置:
location /static/ {
root /home/muqube/muqube_website/muqube/muqube_static_root/;
}
Run Code Online (Sandbox Code Playgroud)
解决的办法是更换root用alias,就像这样:
location /static/ {
alias /home/muqube/muqube_website/muqube/muqube_static_root/;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47722 次 |
| 最近记录: |