我对Django(1.4)比较陌生,我很难理解静态,媒体和管理文件背后的哲学.项目的结构从一个教程到另一个教程是不同的,对于Webfaction(我将托管我的应用程序)也是如此.我想知道在将其部署到Webfaction时,组织它的最佳方式是什么,最少的痛苦和编辑,静态媒体,adn管理文件的重点是什么?先感谢您
Hed*_*ide 15
实质上,您希望django在开发中提供静态文件.一旦你准备好投入生产,你希望服务器为你做这件事(他们建立起来快速做到:-))
这是一个基本设置,一旦您登录服务器,您运行collectstatic命令以获取您的服务器指向的静态根文件夹中的所有静态文件(请参阅重写规则)
./manage.py collectstatic
Run Code Online (Sandbox Code Playgroud)
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',
)
Run Code Online (Sandbox Code Playgroud)
settings_deployment.py
from settings import *
DEBUG = False
TEMPLATE_DEBUG = DEBUG
MEDIA_URL = "http://yourdomain.com/media/"
Run Code Online (Sandbox Code Playgroud)
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,
}),
)
Run Code Online (Sandbox Code Playgroud)
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",
)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13830 次 |
| 最近记录: |