在sae部署Django应用时,遇到静态文件无效问题,根据sae的文档说明(http://sae.sina.com.cn/doc/python/tutorial.html#serve-admin-app)有两种方法:css
方法一:html
修改 settings.py 中的 STATIC_ROOT 为应用目录下 static 子目录的绝对路径。python
运行 python manage.py collectstatic 将静态文件收集到应用的 static 子目录下。jquery
修改 config.yaml ,添加对static文件夹下的静态文件的handlers。web
handlers: - url: /static static_dir: path/to/mysite/static
方法二:django
在开发调试(settings.py中DEBUG=True)过程当中,能够将 staticfiles_urlpatterns 加到你的URLConf,让Django来处理admin app的静态文件:app
urls.py -------- from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', ... # Uncomment the next line to enable the admin: url(r'^admin/', include(admin.site.urls)), ) from django.contrib.staticfiles.urls import staticfiles_urlpatterns urlpatterns += staticfiles_urlpatterns()
因为SAE默认static为静态文件目录,须要修改config.yaml,添加任意一条规则覆盖默认行为。测试
config.yaml ----------- ... handlers: - url: /foo static_dir: foo
经测试第一种没有实现url
测试环境:调试
一、项目目录, 1 为sae的版本号
|--1
|-- mysite
|-- _init_.py
|-- url.py
|-- settings.py
|-- wsgi.py
|-- static
|-- js
|-- css
|-- config.yaml
|-- index.wsgi
|-- manage.py
二、Django版本:1.4
三、python 2.7
配置以下:
url.py
config.yaml
index.wsgi
settings.py
问题,待解决--todo
第二种,配置:
url.py 增长配置以下;
from django.contrib.staticfiles.urls import staticfiles_urlpatterns urlpatterns += staticfiles_urlpatterns()
config.yaml改成
handlers: - url: /static/ static_dir: ./
模板引用:
<link rel="stylesheet" href="static/css/my.css"> <script src="static/js/jquery.js"></script>