这个坑摆弄了一天!
首先看我的项目目录:
1.static文件整个目录有两个,一个在项目根目录下标记为1的,另一个是在项目app下标记为2的。需要注意的是2处的文件名必须为static,django会根据static文件名去查找,之所以在static下又加入了wechat文件,是为了防止以后项目里有多个app时候static太多分不清所以设置的命名空间,为什么会分两个static呢下面解释。
2.首先如果你是DEBUG环境下,那么项目settings.py下degub设置为True,这样的话django1.8是会自己去找静态文件,不需要你改动任何操作,貌似低版本需要在urls里加入处理静态文件的server,总之我调试的1.8版本在debug模式下不需要任何操作就可以加载到静态文件。
- DEBUG = True
- {% load staticfiles %}
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <link rel="stylesheet" type="text/css" href="{% static 'wechat/css/style.css' %}" />
- <script src="{% static 'wechat/js/home.js' %}"></script>
- <title></title>
- </head>
- <body>
- <p class="test">this is first Django Page</p>
- </body>
- </html>
- STATIC_URL = '/static/'
- STATIC_ROOT = os.path.join(BASE_DIR,'static')
5.BASE_DIR是项目根目录,我对应的是D:\\Pycharm\\wechat_huoyun,那么STATIC_ROOT对应的就是D:\\Pycharm\\wechat_huoyun\\static也就是第一张图里的1的标记地方。之后在命里行里进入到和manage.py相同目录下执行:
命令会把所有项目(blog\web)下静态文件拷贝到项目根目录(static)下
- python manage.py collectstatic
6.之后django会自动把项目里所有静态文件,包括admin或者你有多个app下的所有静态文件都集合整理到你STATIC_ROOT设置的目录里,也就是第一章图里标记为1的地方。下次你改动js文件只要再次执行此命令,然后直接迁移STATIC_ROOT里的文件到开发服务器里就可以了。现在需要迁移到开发服务器里了首先把debug改为False,另外需要设置允许访问的host:
- DEBUG = False
- ALLOWED_HOSTS = ['*']
7.之后本地做的事情就OK了,现在需要配置服务器nginx.conf了:127.0.0.1:/static/web/css/style.css 可以web访问即可
- location /static {
- autoindex on;
- alias /root/wechat_huoyun/static;
- }