Django使用错误的项目根文件夹位置

时间:2018-04-01 16:10:53

标签: django django-templates

我刚刚将我的第一个项目投入生产。当我尝试访问它时,它失败,因为项目找不到模板文件夹。如果我启用调试,这是错误消息: enter image description here

在我看来,我的项目正在寻找主项目文件夹之外的模板文件夹。当我将模板文件夹移动到var / www时,我确认了它。因此,这样做django管理页面界面(css和javascript)停止工作。 HTML还在那里,但没有风格。

如何告诉django查找项目文件夹的模板文件夹?

这是我的apache配置:

WSGIDaemonProcess safebox python-home=/var/www/safebox python-path=/var/www/safebox/venv
WSGIProcessGroup safebox

Alias /media/ /var/www/safebox/media/
Alias /static/ /var/www/safebox/static/

<Directory /var/www/safebox/static>
Order deny,allow
Allow from all
</Directory>

<Directory /var/www/safebox/media>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias /safebox /var/www/safebox/safebox/wsgi.py process-group=safebox

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

2 个答案:

答案 0 :(得分:1)

settings.py中,您可以定义django应该在哪里查找模板 - 默认情况下,它位于/ your / project / templates /

目录中
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,

    },  
]

但是静态文件 - 比如媒体,css或js脚本,这是另一个故事。

答案 1 :(得分:1)

在您的settings.py中添加以下行(如果不存在):

var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);


app.use(express.static('public'));

app.get('/', function(req, res){
    res.sendFile(__dirname + '/index.html');
});


io.on('connection', function(socket){
    socket.on('chat message', function(msg){
        io.emit('chat message', msg);
    });
});


http.listen(3000, function(){
    console.log('listening on *:3000');
});

之后:

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(BASE_DIR, "templates")],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},
]