Django 静态文件部署

  1. 主要解决的是Django 1.5的问题
  2. 在所有的Models、Templates和Views都编好的情况下,怎么在Templates中设置正确的CSS和JS等静态文件的路径成了一个问题。直接引用位置不行,相对引用位置不行,难道只有先把静态文件全部都上传到网上,然后再引用其绝对路径?蛋疼死。
  3. 非也。Django有很简单的办法来解决这个问题。在这里我假设你的所有的静态文件都在根目录下的media文件夹中,如果有其他位置,你可以用同样的方法设置,记得设置的时候加上与根目录的相对路径。嗯,大概就下面那个结构就行了。
  4. media
  5. ├───css
  6. ├───images
  7. └───js 
  8. 然后打开你的settings.py,对,就那个好多好多要设置要改的文件,对,就那个设置数据库的用户名密码的。找到里面的STATIC_ROOT,把它改成这样:
  1. STATIC_ROOT = os.path.join(os.path.dirname(__file__), '../media').replace('\\','/')
  2. 意思就是说服务器啊,以后你找我的静态文件就从../media下面开始找哦,绝对找得到哦。
  3. 然后,再打开你的主urls.py,对,就是那个让你开一个页面就去加一条的那个哦,在里面再加一条:
  4. (r'^site_media/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.STATIC_ROOT}), 
  5. 意思就是说服务器啊,以后你见到site_media这个路径啊,就去按settings.py那个设置找我的静态文件哦。
  6. 然后再打开你的模板们,这下设置加载静态文件是不是可简单了?
  7. <link href="/site_media/style/style.css" rel="stylesheet" type="text/css"/> 
  8. <img src=’/site_media/images/picture.jpg’> 
  9. <script src=’/site_media/js/javascript.js’> </script> 
  10. 哦,最后忘了说啦,你的Templates也可以用settings去一条直接设置掉哦:
  11. TEMPLATE_DIRS = (os.path.join(os.path.dirname(__file__), '../templates').replace('\\','/'),
  12. 当然如果你把你的Templates分别存在了不同的路径下,也可以照此法设置的~
  13. TEMPLATE_DIRS = (os.path.join(os.path.dirname(__file__), '../app1/templates').replace('\\','/'), 
  14. TEMPLATE_DIRS = (os.path.join(os.path.dirname(__file__), '../app2/templates').replace('\\','/'), 
  15. TEMPLATE_DIRS = (os.path.join(os.path.dirname(__file__), '../app3/templates').replace('\\','/'), 
  16.  

你可能感兴趣的:(django,python,django,学习笔记)