【问题标题】:django production server: root pathdjango生产服务器:根路径
【发布时间】:2013-05-01 04:06:28
【问题描述】:

我正在开发一个 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>

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

非常感谢。

【问题讨论】:

  • UniPath 是一个好的模块的提示。它以更正常的人语言方式帮助路径。
  • 你能多解释一下或者举个例子吗?它是比我使用的更好/更清洁的解决方案吗?
  • 这里是文档:github.com/mikeorr/Unipath

标签: django path root production


【解决方案1】:

嗯,有几件事。使用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()

我认为您最好使用绝对路径,当您完成所有工作后,如果必须,请尝试使用相对路径来满足您的需求。

希望对你有帮助。

【讨论】:

    【解决方案2】:

    在 wsgi.py 文件中的 django 项目中,我添加了这 3 行

    import sys
    DJANGO_PATH = os.path.join(os.path.abspath(os.path.dirname(__file__)),'..')
    sys.path.append(DJANGO_PATH)
    

    【讨论】:

      猜你喜欢
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      • 1970-01-01
      • 2011-09-29
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多