首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >paster配置中的基本路径

paster配置中的基本路径
EN

Stack Overflow用户
提问于 2011-05-06 07:39:44
回答 1查看 854关注 0票数 2

我正在尝试将一些金字塔代码部署到dotcloud。不幸的是,有些路径的映射方式与本地paster部署不同。当我通过paster serve ...在本地服务器上运行开发配置时,我可以访问配置在:

代码语言:javascript
复制
config.add_static_view('static', 'appname:static')

但是,在dotcloud服务器上,当脚本通过以下wsgi.py运行时

代码语言:javascript
复制
import os, sys
from paste.deploy import loadapp
current_dir = os.path.dirname(__file__)
application = loadapp('config:production.ini', relative_to=current_dir)

在错误的目录中搜索静态内容。它应该在/home/dotcloud/current/appname/static/pylons.css中查找,而不是/home/dotcloud/current/static/pylons.css

wsgi配置中有没有可以定义基本目录的部分?我遗漏了什么?该应用程序通过nginx / uwsgi运行。

我试着加载config:../production.inirelative_to=current_dir + '/appname',但这并没有改变任何事情。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-06 14:11:15

在DotCloud上,以/static开头的URL直接由nginx处理,而不是由uwsgi处理。这意味着您的代码永远看不到这些请求:它们将直接从应用程序的static/子目录中获得服务。

一种可能的解决方法是设置从staticappname/static的符号链接。

如果您不想让这样的符号链接弄乱您的存储库,您可以改用postinstall脚本:

代码语言:javascript
复制
#!/bin/sh
# This creates the symlink required by DotCloud to serve static content from nginx
ln -s ~/current/appname/static ~/current/static

符号链接很流畅,但postinstall脚本允许您在文件中插入注释,以解释其用途:-)

DotCloud的未来版本可能会提供“裸配置”切换,其中nginx配置将不包括任何特殊的路径处理,以防您不需要它们。

同时,如果你想查看你的DotCloud服务的nginx默认配置,你可以通过dotcloud ssh连接到你的服务,并检查nginx。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5905291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档