我刚刚将我的第一个项目投入生产。当我尝试访问它时,它失败,因为项目找不到模板文件夹。如果我启用调试,这是错误消息:
在我看来,我的项目正在寻找主项目文件夹之外的模板文件夹。当我将模板文件夹移动到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>
答案 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',
],
},
},
]