在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>
相關文章
相關標籤/搜索