Django管理,静态和媒体文件中的混乱

我是Django(1.4)的新手,我很难理解静态文件,媒体文件和管理文件的原理。该项目的结构从一个教程到另一个教程都是不同的,对于Webfaction(我将在其中托管应用程序)也是如此。我想知道什么是组织它的最佳方式,并且在将它部署到Webfaction时花费最少的精力和编辑,静态媒体和管理文件的意义是什么?先感谢你

回答:

本质上,你想在开发中使用django提供静态文件。准备好投入生产后,你希望服务器为你执行此操作(它们的构建旨在快速完成它:-))

这是一个基本设置,登录服务器后,运行collectstatic命令以获取服务器指向的static-root文件夹中的所有静态文件(请参阅重写规则)。

./manage.py collectstatic

settings.py

    from os import path

import socket

PROJECT_ROOT = path.dirname(path.abspath(__file__)) #gets directory settings is in

# Dynamic content is saved to here

MEDIA_ROOT = path.join(PROJECT_ROOT,'media')

# if ".webfaction.com" in socket.gethostname():

# MEDIA_URL = 'http://(dev.)yourdomain.com/media/'

# else:

MEDIA_URL = '/media/'

# Static content is saved to here --

STATIC_ROOT = path.join(PROJECT_ROOT,'static-root') # this folder is used to collect static files in production. not used in development

STATIC_URL = "/static/"

STATICFILES_DIRS = (

('', path.join(PROJECT_ROOT,'static')), #store site-specific media here.

)

# List of finder classes that know how to find static files in

# various locations.

STATICFILES_FINDERS = (

'django.contrib.staticfiles.finders.FileSystemFinder',

'django.contrib.staticfiles.finders.AppDirectoriesFinder',

# 'django.contrib.staticfiles.finders.DefaultStorageFinder',

)

settings_deployment.py

from settings import *

DEBUG = False

TEMPLATE_DEBUG = DEBUG

MEDIA_URL = "http://yourdomain.com/media/"

urls.py

...other url patterns...

if settings.DEBUG:

urlpatterns += staticfiles_urlpatterns() #this serves static files and media files.

#in case media is not served correctly

urlpatterns += patterns('',

url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {

'document_root': settings.MEDIA_ROOT,

}),

)

django.conf(lighttpd,可能是apache或nginx),但我相信webfaction有一个应用程序服务可以轻松地对此进行设置

$HTTP["host"] =~ "(^|\.)yourdomain\.com$" {

fastcgi.server = (

"/django.fcgi" => (

"main" => (

"socket" => env.HOME + "/project/project.sock",

"check-local" => "disable",

)

),

)

alias.url = (

"/media" => env.HOME + "/project/media",

"/static" => env.HOME + "/project/static-root",

)

url.rewrite-once = (

"^(/media.*)$" => "$1",

"^(/static.*)$" => "$1",

"^/favicon\.ico$" => "/static/img/favicon.png",

"^(/.*)$" => "/django.fcgi$1",

)

}

以上是 Django管理,静态和媒体文件中的混乱 的全部内容, 来源链接: utcz.com/qa/403697.html

回到顶部