在sae部署Django应用时,遇到静态文件无效问题,根据sae的文档说明(http://sae.sina.com.cn/doc/python/tutorial.html#serve-admin-app)有两种方法:
方法一:
修改 settings.py 中的 STATIC_ROOT 为应用目录下 static 子目录的绝对路径。
运行 python manage.py collectstatic 将静态文件收集到应用的 static 子目录下。
修改 config.yaml ,添加对static文件夹下的静态文件的handlers。
handlers:
- url: /static
static_dir: path/to/mysite/static
方法二:
在开发调试(settings.py中DEBUG=True)过程中,可以将 staticfiles_urlpatterns 加到你的URLConf,让Django来处理admin 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
经测试第一种没有实现
测试环境:
1、项目目录, 1 为sae的版本号
|--1
|-- mysite
|-- _init_.py
|-- url.py
|-- settings.py
|-- wsgi.py
|-- static
|-- js
|-- css
|-- config.yaml
|-- index.wsgi
|-- manage.py
2、Django版本:1.4
3、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>
来源:oschina
链接:https://my.oschina.net/u/877170/blog/314459