Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用nginx的实时服务器中的Django静态文件_Django_Nginx - Fatal编程技术网

使用nginx的实时服务器中的Django静态文件

使用nginx的实时服务器中的Django静态文件,django,nginx,Django,Nginx,我有一个运行django的实时服务器,地址是。如您所见,该应用程序可以工作,但看起来静态文件无法工作。此外,如果我点击任何其他链接,也不起作用 此网站在开发版本中运行没有任何问题。我不知道该怎么解决这个问题 这是我的nginx配置文件和我的settings.py STATIC_URL = '/static/' STATIC_ROOT = '/cinegloria/cinegloria/cinegloria/static/' PS:我试图运行collectstatic;) 任何想法或样本代码将不

我有一个运行django的实时服务器,地址是。如您所见,该应用程序可以工作,但看起来静态文件无法工作。此外,如果我点击任何其他链接,也不起作用

此网站在开发版本中运行没有任何问题。我不知道该怎么解决这个问题

这是我的nginx配置文件和我的settings.py

STATIC_URL = '/static/'
STATIC_ROOT = '/cinegloria/cinegloria/cinegloria/static/'
PS:我试图运行collectstatic;)


任何想法或样本代码将不胜感激

将静态服务添加到nginx conf的
/
模式之前:

location /static {
    alias /cinegloria/cinegloria/cinegloria/static/;
}

location / {
    ...
}
或者将
STATIC\u ROOT
设置为www根目录下的目录:

STATIC_ROOT = '/usr/share/nginx/www/static'
或者将www根目录中的符号链接添加到静态目录:

$ ln -s /cinegloria/cinegloria/cinegloria/static /usr/share/nginx/www/static

为静态文件添加另一个nginx指令。静态文件应该由nginx提供,而不是Django服务器

location  /static/ {
    alias  /cinegloria/cinegloria/cinegloria/static/;
}
如果仍然不起作用,您可能需要添加mime type指令。我昨天不得不这么做,因为出于某种原因,当我使用别名时,nginx没有提供正确的mime类型


作为一个有用的指针,每当您遇到这样的问题时,请查看nginx错误日志并粘贴最后几行以进行调试。它位于/var/log/nginx/error.log或类似路径。

不错!它正在工作。您的代码缺少一个;在别名行的末尾。无论如何,谢谢你的回答。关于我的页面,如果我点击任何链接,都不起作用,这也可能是nginx的问题?例如联系页面。。。我单击的任何其他页面都会出现此错误。。。[22/Feb/2015:23:50:37-0300]“GET/contato/HTTP/1.1”404 1308“尝试对
Try\u文件
指令进行注释。普通的django应用程序不需要它。你知道我的页面为什么会断开吗?似乎链接不起作用。这是nginx的问题吗?你知道吗?
location  /static/ {
    alias  /cinegloria/cinegloria/cinegloria/static/;
}