gpt4 book ai didi

django 生产服务器 : root path

转载 作者:行者123 更新时间:2023-12-04 18:09:59 25 4
gpt4 key购买 nike

我正在开发一个 Django 应用程序。在开发服务器上,一切正常。在生产服务器上(使用 apache),没有任何工作。

1/我有错误 TemplateDoesNotExist at/

在我的 settings.py 文件中:

SITE_ROOT = os.path.abspath(os.path.dirname(__name__))。这是项目根路径。

templateDir = os.path.join(SITE_ROOT, 'templates/')
TEMPLATE_DIRS = (
templateDir
)

这是模板路径。

2/如果我将 SITE_ROOT 更改为项目的绝对路径:

SITE_ROOT="/var/www/europolix"

模板似乎可以识别,但我还有另一个错误:没有名为 getEurlexIdsFunctions 的模块这是代码:

import sys
sys.path.append('import')
import getEurlexIdsFunctions as eurlexIds

我认为问题再次来自相对路径。 Apache 似乎在“var/www/”而不是“var/www/europolix/”中搜索“导入”。我说得对吗?

这是我的 apache 配置:

WSGIScriptAlias /europolix /var/www/europolix/europolix/wsgi.py
WSGIPythonPath /var/www/europolix/
<Directory /var/www/europolix/>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

是根路径无法识别的问题,还是其他问题?

非常感谢。

最佳答案

好吧,有几件事。使用 settings.py 时,最好将所有路径声明为绝对路径。我在你的代码中看到你有这一行

SITE_ROOT = os.path.abspath(os.path.dirname(__name__))

用于站点的根目录,但我认为如果使用 __file__ 全局变量而不是 __name__ 会更好。像这样:

SITE_ROOT = os.path.abspath(os.path.dirname(__file__))

我在生产服务器中有一个 Django 应用程序,我必须添加到我的 httpd.conf 关于 wsgi 的是 load_module 指令和虚拟主机中的这一行

WSGIScriptAlias / C:/Users/ike/Documents/Work/Sincronoz/code/apache/django.wsgi

django.wsgi 脚本的别名指定为根。

然后在 django.wsgi 脚本中我有这段代码:

import os, sys
sys.path.append(r'<full site root to where is settings.py>')
os.environ['DJANGO_SETTINGS_MODULE'] = 'my_project_module.settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()

我认为你最好使用绝对路径,当你完成所有工作后,如果需要的话,尝试使用相对路径来满足你的需要。

希望对您有所帮助。

关于django 生产服务器 : root path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16415055/

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