gpt4 book ai didi

python - 粘贴配置中的基本路径

转载 作者:行者123 更新时间:2023-11-28 23:05:34 25 4
gpt4 key购买 nike

我正在尝试将一些 Pyramid 代码部署到 dotcloud。不幸的是,某些路径的映射方式与本地粘贴部署不同。当我通过 paster serve ... 使用本地服务器运行开发配置时,我可以访问在以下位置配置的静态文件:

config.add_static_view('static', 'appname:static')

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

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/static/pylons.css,它应该在 /home/dotcloud/current/appname/static/pylons.css

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

我尝试加载 config:../production.inirelative_to=current_dir + '/appname' 但这并没有改变任何东西。

最佳答案

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

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

如果您不想让这样的符号链接(symbolic link)弄乱您的存储库,您可以使用 postinstall 脚本代替:

#!/bin/sh
# This creates the symlink required by DotCloud to serve static content from nginx
ln -s ~/current/appname/static ~/current/static

符号链接(symbolic link)很流畅,但是 postinstall 脚本让您有机会在文件中添加注释,以解释其用途:-)

DotCloud 的 future 版本可能会提供“裸配置”开关,其中 nginx 配置将不包含任何特殊路径处理,以防万一您不需要它们。

同时,如果您想查看 DotCloud 服务的 nginx 默认配置,您只需 dotcloud ssh 到您的服务,然后检查 /etc/nginx/sites-enabled/default

关于python - 粘贴配置中的基本路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5905291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com