0

欢迎来到另一个关于在站点的子目录中服务 Ghost 的问题!

我已经设置了一个代理服务器,因为许多线程都有详细信息(仍然没有文档......)和这个 Github 配置文件详细信息(https://github.com/owenscott/hapi-ghost-proxy-example/blob/master /config.js)。

我可以提供根页面,但不能让 Ghost 显示在子目录路由上。对于以下错误中到底发生了什么(当您导航到 url 时显示在浏览器中),我感到非常困惑:

    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);

有任何想法吗?

4

1 回答 1

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);
});

查看此内容以获取更多信息。

于 2015-02-08T00:42:00.977 回答