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

邮差的信 提交于 2019-12-07 20:04:52

在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>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!