Django Admin样式表不会在生产服务器上加载

射线

内置管理站点的Django样式表未加载到运行Django 1.6的生产服务器上。我可以看到许多其他人都遇到了此问题,并且我尝试了已提供给他们的所有解决方案,但都无济于事。我的Django网站在Nginx 1.2.1代理之后的Gunicorn 19.1.1之上运行。

由于我将要构建一个仪表板,并且除了管理用户,组和模型之外,还将使用管理网站做更多的事情,所以我在网站内部创建了一个“管理”应用程序:

INSTALLED_APPS += ('apps.admin', )

我覆盖并扩展了Django的一些管理模板,并在此处从django.contrib.admin.templates复制了它们:

/www/site/apps/admin/__init__.py
/www/site/apps/admin/models.py
/www/site/apps/admin/views.py
/www/site/apps/admin/urls.py
/www/example/apps/admin/templates/admin/base.html
/www/example/apps/admin/templates/admin/base_site.html
/www/example/apps/admin/templates/admin/index.html
/www/example/apps/admin/templates/admin/my_dashboard.html # mine

这是我的urls.py文件中的相关设置

from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
    # ...
    url(r'^admin/', include(admin.site.urls)),
    url(r'^admin/dashboard/$',
        'apps.admin.views.dashboard',
        {'template': 'my_dashboard.html'},
        name='dashboard'),
)

这是我的设置。我网站的实际静态文件位于此处:

/www/example/static/css
/www/example/static/js

这是我的静态根。Django文档说,它应该与静态文件的实际位置不同。

STATIC_ROOT = "/var/www/example/static/"

我的静态网址的前缀:

STATIC_URL = '/static/'

静态文件和查找器的位置:

STATICFILES_DIRS = (
    '/www/example/static'
)
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

我的Nginx配置文件:

upstream gunicorn {
    server 127.0.0.1:8000 fail_timeout=0;
}
server {
    listen 80;
    server_name www.example.com;
    rewrite ^/(.*) http://example.com/$1 permanent;
}
server {
    listen 80;
    server_name example.com;
    root /www/example;
    client_max_body_size 4G;
    keepalive_timeout 5;
    location /static/ {
        alias /www/example/static/;
    }
    location /media/ {
        alias /var/www/example/media/;
    }
    try_files $uri @django;
    location @django {
        proxy_pass http://gunicorn;
        proxy_redirect off;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    error_page 500 502 503 504 /500.html;
    location = /500.html {
        root /www/example/static;
    }
}

我可以看到该站点正确地在服务器我的静态文件。例如,我可以看到此图像:

http://example.com/static/img/small_img.jpg

但是当我尝试访问Django样式表时,Nginx引发404错误...

http://example.com/static/admin/css/base.css

...即使在浏览器中执行“查看源代码”也会显示以下链接:

<link rel="stylesheet" type="text/css" href="/static/admin/css/base.css" />
<link rel="stylesheet" type="text/css" href="/static/admin/css/login.css" />

这是我做过的其他事情:

  • 我确认“ django.contrib.staticfiles”和“ django.contrib.admin”在INSTALLED_APPS中。
  • 我进入Python shell并验证了我的STATIC_ROOT,STATIC_URL和STATICFILES_DIR设置。
  • 我在服务器上运行“ collectstatic”命令,并验证它已将Django管理站点的静态文件复制到了我的STATIC_ROOT。
  • 我尝试按此处所述向我的nginx配置文件中添加一个附加的位置指令,然后重新启动了我的Nginx服务。
  • 我尝试创建目录/ www / example / static / admin目录,然后在其中创建一个“静态”符号链接,该链接指向虚拟环境目录中的静态目录... / django / contrib / admin / static /。
  • 我在Chrome浏览器中加载了管理主页,并显示了开发者控制台,以查看是否发生了奇怪的情况,但它仅报告404错误。

我将尝试通过将Django的静态文件复制到站点的静态文件目录并更改base.html版本中的href来尝试“猴子修补”。但是,这不是一个好的解决方案。

抱歉,这么长的帖子。谁能告诉我我在做什么错?除此之外,管理站点似乎正在运行。只是样式表不会加载。谢谢!

席林特

看来您STATIC_ROOT与nginx的location /static/别名不匹配你不见了/var/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在生产服务器上监视Django Rest Framework API

来自分类Dev

在生产服务器上使用Django登录的Apache WSGI权限错误

来自分类Dev

Django样式表将不会加载

来自分类Dev

在生产服务器中部署Django

来自分类Dev

生产服务器上的smpt django

来自分类Dev

Django生产服务器上的FieldDoesNotExist错误

来自分类Dev

为什么Django / Python请求在生产服务器上不起作用?

来自分类Dev

如何在生产服务器上自动运行Django应用程序

来自分类Dev

Django:对 css 文件的更改不会在 heroku 中加载

来自分类Dev

无法将样式表添加到Django Admin

来自分类Dev

docker 容器上的 Django MSSQL 服务器不会迁移

来自分类Dev

测试不会在Django模型字段上引发ValidationError

来自分类Dev

当我在Django Admin中删除或添加对象时,它不会在网页上删除或添加吗?

来自分类Dev

Django会话会在生产中丢失复杂的对象,但在开发中不会丢失

来自分类Dev

图片不会在基于python的网络服务器上加载

来自分类Dev

Django Digitalocean 服务器不会更新

来自分类Dev

Rails Production服务器样式表未加载

来自分类Dev

样式表,图像和javascript未在rails4的heroku服务器上加载

来自分类Dev

带有日志记录的生产服务器上的django 502错误网关

来自分类Dev

在迁移期间防止生产服务器上Django应用中的FieldDoesNotExist

来自分类Dev

基于 Django rest 函数的 api 中的 Swagger 在 ubuntu 服务器(生产)上无法正确显示

来自分类Dev

服务器上的样式表(.grass)?

来自分类Dev

Django项目:生产服务器,使用python 3

来自分类Dev

在服务器上运行Django应用

来自分类Dev

Django服务器卡在Beanstalkd上

来自分类Dev

为什么静态文件不会在Django Web应用程序中加载?

来自分类Dev

当我更改urlconfig时,图像不会在Django中加载

来自分类Dev

即使应用了 {% load static %},Django 静态文件也不会在块内容中加载

来自分类Dev

RouteMapping可在开发服务器上使用,但会在生产中产生404

Related 相关文章

  1. 1

    在生产服务器上监视Django Rest Framework API

  2. 2

    在生产服务器上使用Django登录的Apache WSGI权限错误

  3. 3

    Django样式表将不会加载

  4. 4

    在生产服务器中部署Django

  5. 5

    生产服务器上的smpt django

  6. 6

    Django生产服务器上的FieldDoesNotExist错误

  7. 7

    为什么Django / Python请求在生产服务器上不起作用?

  8. 8

    如何在生产服务器上自动运行Django应用程序

  9. 9

    Django:对 css 文件的更改不会在 heroku 中加载

  10. 10

    无法将样式表添加到Django Admin

  11. 11

    docker 容器上的 Django MSSQL 服务器不会迁移

  12. 12

    测试不会在Django模型字段上引发ValidationError

  13. 13

    当我在Django Admin中删除或添加对象时,它不会在网页上删除或添加吗?

  14. 14

    Django会话会在生产中丢失复杂的对象,但在开发中不会丢失

  15. 15

    图片不会在基于python的网络服务器上加载

  16. 16

    Django Digitalocean 服务器不会更新

  17. 17

    Rails Production服务器样式表未加载

  18. 18

    样式表,图像和javascript未在rails4的heroku服务器上加载

  19. 19

    带有日志记录的生产服务器上的django 502错误网关

  20. 20

    在迁移期间防止生产服务器上Django应用中的FieldDoesNotExist

  21. 21

    基于 Django rest 函数的 api 中的 Swagger 在 ubuntu 服务器(生产)上无法正确显示

  22. 22

    服务器上的样式表(.grass)?

  23. 23

    Django项目:生产服务器,使用python 3

  24. 24

    在服务器上运行Django应用

  25. 25

    Django服务器卡在Beanstalkd上

  26. 26

    为什么静态文件不会在Django Web应用程序中加载?

  27. 27

    当我更改urlconfig时,图像不会在Django中加载

  28. 28

    即使应用了 {% load static %},Django 静态文件也不会在块内容中加载

  29. 29

    RouteMapping可在开发服务器上使用,但会在生产中产生404

热门标签

归档