Django:从MEDIA_URL迁移到STATIC_URL [英] Django: Migrating from MEDIA_URL to STATIC_URL

查看:132
本文介绍了Django:从MEDIA_URL迁移到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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆