在SAE部署Django时的静态文件问题

在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>
相关文章
相关标签/搜索