欢迎来到关于在网站的子目录中提供Ghost的另一个问题!
我已经设置了一个代理服务器,因为许多线程已经详细(仍然没有文档....)和这个Github配置文件详细信息(https://github.com/owenscott/hapi-ghost-proxy-example/blob/master/config.js)。
我可以提供根页面,但无法让Ghost显示在子目录路径上。我对以下错误中发生的事情感到困惑(当您导航到网址时在浏览器中显示):
TypeError: Parameter 'url' must be a string, not undefined
at Url.parse (url.js:107:11)
at Object.urlParse [as parse] (url.js:101:5)
at Object.common.setupOutgoing (C:\dev\projects\warpspeed\node_modules\http-proxy\lib\http-proxy\common.js:71:11)
at Array.stream [as 3] (C:\dev\projects\warpspeed\node_modules\http-proxy\lib\http-proxy\passes\web-incoming.js:109:14)
at ProxyServer.<anonymous> (C:\dev\projects\warpspeed\node_modules\http-proxy\lib\http-proxy\index.js:80:21)
at ghost.config (C:\dev\projects\warpspeed\server.js:23:8)
at Layer.handle [as handle_request] (C:\dev\projects\warpspeed\node_modules\express\lib\router\layer.js:76:5)
at next (C:\dev\projects\warpspeed\node_modules\express\lib\router\route.js:100:13)
at Route.dispatch (C:\dev\projects\warpspeed\node_modules\express\lib\router\route.js:81:3)
at Layer.handle [as handle_request] (C:\dev\projects\warpspeed\node_modules\express\lib\router\layer.js:76:5)
我猜这与通过ghost进行路由有关,详见我的server.js文件(如下)。
var express = require('express');
var ghost = require('ghost');
var httpProxy = require('http-proxy');
var path = require('path');
var app = express();
var proxy = new httpProxy.createProxyServer();
//routes
app.get('/', function(req, res){
res.send('Coming soon...')
});
//ghost routes
app.get('/nowhammystop', function(req, res, next){
proxy.web(res, req, {
target: 'http://localhost:22889'
});
});
//start Ghost
ghost({
config: path.join(__dirname, 'node_modules/ghost/config.js')
});
var server = app.listen(12942);
有什么想法吗?
答案 0 :(得分:0)
我不确定这最近是否已经改变,但现在正确的方法是:
var ghost = require('ghost'),
express = require('express'),
parentApp = express();
ghost().then(function (ghostServer) {
parentApp.use(ghostServer.config.paths.subdir, ghostServer.rootApp);
ghostServer.start(parentApp);
});
查看this out了解详情。