Django 开发之pycharm注册码以及django初始配置

Pycharm 注册码:User Name: OpenCog

===== LICENSE BEGIN =====
467348-21062012
00001wsNeLYfIykDJyTmEVZLCZ7xGF
itb3lU9OXAKrkg3zVTrDI0HRgz05l2
CgMye9l1JciQI7!WndwzQQcJDcpaD6
===== LICENSE END =====

设置静态文件路径

在用Django 做项目时,如果在本地调试的情况下,我们会开启 settings.py 中的 DEBUG = True 
同时我们还会做如下操作:

1. 设置 STATIC_ROOT = os.path.join(os.path.dirname(__file__),'static')

2.设置 STATIC_URL = '/static/' 

以上两步我想一般都会提到,但即使你做了这样的配置,当你在浏览器中浏览你的CSS或JS 文件,仍然是 404 错误,说明路径错误,根本找不到。


经过多次试验,按如下方法可以解决
配置STATICFILES_DIRS
在setting.py 文件中配置如下:
STATICFILES_DIRS = (
    ('css',os.path.join(STATIC_ROOT,'css').replace('\\','/') ),  
    ('js',os.path.join(STATIC_ROOT,'js').replace('\\','/') ), 
    ('images',os.path.join(STATIC_ROOT,'images').replace('\\','/') ), 
    ('upload',os.path.join(STATIC_ROOT,'upload').replace('\\','/') ), 
)

注意前面的css,js,images,upload 一定要与你的目录结构名称保持一致。

早模板中的使用
 程序代码

<script type="text/javascript" src="/static/js/myjs.js"></script> 

采用这种方式就可以了。css与图片同样的道理。注意static前面的的斜线

注意在上述情况下,只能在开启 DEBUG=True 时才能生效,在我们开发的时候很方便。如果设置DEBUG=False 将不会生效。这种情况时,要采用生产环境的 配置。用web application server 来处理这些静态的图片,css,以及js文件。

生产环境的处理
1.设置 DEBUG=False
2.可以不用配置STATICFILES_DIRS
3.配置web application server ,比如我用 nginx:
 程序代码

location ^~ /static {
        root
/opt/www/MyNet;(实际中改为你的工程中的static目录)
}

这样,就自然找到static路径,不用 django去处理了。如果想配置生产环境的,

备注:有的文章在urls.py 中进行配置,确实可以,但我觉得这不是个好方法。比如:
 程序代码

MEDIA_ROOT=os.path.join(os.path.dirname(__file__),'media').replace('\\','/') #如果是*nix系统,不需要replace函数
MEDIA_URL='/media/' #末尾一定要加上/
ADMIN_MEDIA_PREFIX = '/media/admin/' #填啥都可以,就是不能跟MEDIA_URL一样

然后
 程序代码

(r'^media/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}
posted @ 2012-11-20 09:21  willier  阅读(445)  评论(0)    收藏  举报