我用了几天的AppFog PaaS 系统,我很喜欢它,它可能是我测试过的最好的 PaaS 系统(我之前使用过其他 3 个),但是没有找到关于如何服务静态的信息前端 Web 服务器的内容(Apache https 或 nginx) 我不确定正在使用什么服务器。
我的应用程序是一个带有 CherryPy 的 Python WSGI,并且在 AppFog 中完美运行,但我不希望 CherryPy 提供静态内容,我认为 Apache httpd 或 nginx 是一个更好的选择。
在 Ryan 的支持下,我终于可以加载静态文件了!以下是步骤:
在项目根目录中创建了一个“静态”目录——这里所有的静态文件都将通过collectstatic命令被收集。
编辑settings.py文件:
STATIC_ROOT = os.path.join( os.path.abspath( os.path.dirname( file ) ), '../static' ) # 可能会根据你的 settings.py 文件的位置而改变!
STATIC_URL = '/静态/'
在urls.py文件的urlpatterns
变量中添加以下行:
url(r'^static/(?P.*)$', 'django.views.static.serve', { 'document_root': settings.STATIC_ROOT} ) ,
最后,在本地机器上运行 collectstatic 命令。这将从您正在使用的应用程序中复制所有静态文件:
python manage.py collectstatic
而已。推入AF :)
collectstatic
缺点:每次我们有一个新的静态文件时都需要运行......
编辑你的 nginx.conf 文件。在服务器部分输入...
# serve static files
location ~ ^/(images|javascript|css)/ {
root /var/www/html/appname;
}
images、javascript 和 css 将是您文档根文件夹中的文件夹。相应地更新您的所有网址。