在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>