Skip to main content
 首页 » 编程设计

python之Django 1.4 服务媒体文件有效,但不是静态的

2024年11月01日36JustinYoung

我正在使用 Django 1.4,出于某种原因我可以提供媒体文件,但不能提供静态文件... 这是我的代码: 设置:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media/') 
MEDIA_URL = '/media/' 
STATIC_ROOT = os.path.join(BASE_DIR, 'static/') 
STATIC_URL = '/static/' 
ADMIN_MEDIA_PREFIX = '/static/admin/' 

urls.py:

(r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT}), 
                    (r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_ROOT}), 

基础.html:

<link href="{{ STATIC_URL }}css/bootstrap.css" rel="stylesheet"> 
<link href="{{ MEDIA_URL }}css/bootstrap-colorpicker.css" rel="stylesheet"> 

我收到 404 http 未找到...我做错了什么?我确实在媒体旁边的项目中创建了静态文件夹

http://mysite.com:8000/static/css/bootstrap.css

请您参考如下方法:

您的静态文件夹应该位于您使用它的一个应用程序下。

例如,我有一个名为 my_project 的项目和一个名为 my_app 的应用程序,我在 my_app 中使用了一些静态文件,所以我把它们在 ~/project_path/my_project/my_app/static

下

注意 my_app 必须在 INSTALLED_APPS 中。请参阅 STATICFILES_FINDERS documentation .

编辑:

作为最佳实践,您应该在一个应用程序(主要应用程序)中有一个全局静态文件夹,例如一个静态文件夹如何包含您的 html 模板基本资源,如 jquery、bootstrap、您的全局样式。

对于静态文件只需要一个应用程序,例如应用程序 foo,这些文件应该在 foo/static 文件夹下