我一直在处理新的collectstatic命令,并使它在我的普通页面中正常工作。也就是说,我能够在这个位置http://localhost:8000/static/css/main.css加载我的css。然而,我的django管理员的css似乎并没有出现。
当我导航到http://localhost:8000/static/admin/css/base.css的admin位置时,我得到了一个404页,没有找到它,有以下错误:/home/nai/GitProjects/cats/django-trunk/django/contrib/admin/media/css/base.css" does not exist。在django-主干中,我一开始就没有/home/nai/GitProjects/cats/django-trunk/django/contrib/admin/media/文件夹。
这很奇怪吗?
无论如何,在我的静态文件夹中,有一个带有css、img和js文件夹的管理文件夹,这些文件夹是在我运行收集器时创建的,base.css的url似乎指向那个位置。
这种情况发生在我的django开发服务器上。下面是一些帮助搜索bug的代码片段:
urls
33 # In order for Dev Server to serve media files for the frontend site.
34 urlpatterns += staticfiles_urlpatterns()
35
36 try:
37 if settings.DEBUG: # defined in manage.py when the first arg is "runserver"
38 urlpatterns += patterns('',
39 (r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT}),
40 (r'^media-admin/(?P<path>.*)$', 'django.views.static.serve',{'document_root': os.path.join(settings.MEDIA_ROOT, '..', settings.ADMIN_MEDIA_PREFIX)}),
41 )
42 except NameError:
43 pass我认为这可能与我的URLS文件中的第40行有关,但是将媒体管理改为静态/管理并没有帮助。
设置
58 ADMIN_MEDIA_PREFIX = '/static/admin'
69 STATIC_ROOT = os.path.join(os.path.abspath(os.path.join(PROJECT_ROOT, '..', MEDIA_DIR, 'static')), '')
70
71 # URL prefix for static files.
72 # Example: "http://media.lawrence.com/static/"
73 STATIC_URL = '/static/'
74
75 # Additional locations of static files. Global files are stored in here
76 STATICFILES_DIRS = (
77 os.path.join(os.path.abspath(os.path.join(PROJECT_ROOT, '..', 'proj_public', 'static', 'proj')), ''),
78 )
79 发布于 2013-10-29 07:17:06
Django建议您使用wsgi以外的web服务器部署静态文件。
STATIC_ROOT = 'static'
/path/to/project/static/
python manage.py collectstatic,它将把Django管理静态文件复制到您的静态文件服务器。如果使用Nginx,可以添加以下配置:位置/静态/{别名/路径/到/项目/静态/过期修改+1w;}
您现在应该可以访问静态文件了。
发布于 2012-07-02 18:35:56
在Django 1.4中,不推荐使用ADMIN_MEDIA_PREFIX。下面是我为赶上这些最近的Django更改而遵循的步骤:
在INSTALLED_APPS
settings.py中,将django.contrib.staticfiles添加到django.contrib.staticfiles settings.py define STATIC_URL --如果没有它,静态文件应用程序将无法运行。当使用runserver时,它们将被神奇地处理,但是当您部署时,这需要是浏览器可以获取这些资源的位置。我想这就是全部了。
发布于 2012-12-27 23:33:27
我在用Django 1.4.3
不适合我的内容:,无论我在settings.py中编辑了多少ADMIN_MEDIA_PREFIX,我都没有注意到为Django管理页面生成的HTML中的任何变化。当我查看源时,它总是写/media/admin/base.css。
什么对我有用。从/django/contrib/admin/static/复制了“管理”文件夹,然后粘贴到我的项目“媒体”文件夹中。
现在效果很好。
https://stackoverflow.com/questions/7241688
复制相似问题