Django:从MEDIA_URL迁移到STATIC_URL [英] Django: Migrating from MEDIA_URL to STATIC_URL
问题描述
自从Django 1.3以来,我们引入了STATIC_URL的概念来分离使用css和js文件的媒体文件。
我设置了我的 STATIC_ROOT ='/ home / user / project / static /'
和
STATIC_URL ='/ static /'
b
$ b
在我的base.html中,我已经改变了路径:
link href ={{STATIC_URL}} bootstrap / css / bootstrap.min.css =stylesheet>
在 url.py
我已经添加以下两行:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
...
urlpatterns + = staticfiles_urlpatterns()
我的视图使用RequestCOntext呈现模板:
return render(request,'main_page.html',variables)
但是在开发中,运行runserver时仍然会得到404。
[18 / 2012 17:12:04]GET /static/jquery/jquery-1.8.0.min.js HTTP / 1.1404 1682
我可能缺少什么?
settings.py
PROJECT_DIR = os.path.dirname(os.path.abspath(__ file__))
MEDIA_ROOT = os.path.join(PROJECT_DIR ,'site_media')
MEDIA_URL ='/ site_media /'
STATIC_URL ='/ static /'
如果DEBUG:
STAT IC_ROOT = os.path.join(PROJECT_DIR,'static')
else:
STATICFILES_DIRS =(
os.path.join(PROJECT_DIR,'static'),
)
urls.py
code> if settings.DEBUG:
urlpatterns + = patterns('',
url(r'^ site_media /(?P< path>。*)$','django.views。 static.serve',{'document_root':settings.MEDIA_ROOT}),
url(r'^ static /(?P< path>。*)$','django.views.static.serve',{ 'document_root':settings.STATIC_ROOT}),
)
应该工作:)
Since Django 1.3 the concept of STATIC_URL has been introduced to separate use media files from css and js files.
I have set my STATIC_ROOT = '/home/user/project/static/'
and
STATIC_URL = '/static/'
.
In my base.html, i have changed the path like this:
<link href="{{ STATIC_URL }}bootstrap/css/bootstrap.min.css" rel="stylesheet">
And in url.py
I have added the following two lines:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
...
urlpatterns += staticfiles_urlpatterns()
My view renders the template with RequestCOntext:
return render(request, 'main_page.html', variables)
But in the development I still get 404 when running runserver.
[18/Aug/2012 17:12:04] "GET /static/jquery/jquery-1.8.0.min.js HTTP/1.1" 404 1682
What could I be missing?
settings.py
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
MEDIA_ROOT = os.path.join(PROJECT_DIR, 'site_media')
MEDIA_URL = '/site_media/'
STATIC_URL = '/static/'
if DEBUG:
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
else:
STATICFILES_DIRS = (
os.path.join(PROJECT_DIR, 'static'),
)
urls.py
if settings.DEBUG:
urlpatterns += patterns('',
url(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
)
That should work :)
这篇关于Django:从MEDIA_URL迁移到STATIC_URL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!