Ghost как модуль npm, не обслуживающий активы?

Я использую призрак в качестве модуля npm в существующем приложении node, в основном это дочернее приложение.

Итак, мое приложение работает на порту 9200, для этого я настроил обратный прокси-сервер.

 location / {
    proxy_pass http://localhost:9200;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

Затем я настроил свое приложение-призрак внутри своего основного приложения.

// server.js
ghost().then(function (ghostServer) {
    app.use(ghostServer.config.paths.subdir, ghostServer.rootApp);

    ghostServer.start(app);
});

// node_modules/ghost/config.js
production: {
    url: 'http://example.com/blog',
    mail: {},
    database: {
        client: 'sqlite3',
        connection: {
            filename: path.join(__dirname, '/content/data/ghost.db')
        },
        debug: false
    },

    server: {
        // Host to be passed to node's `net.Server#listen()`
        host: '127.0.0.1',
        // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
        port: '2368'
    },
    paths: {
      contentPath: path.join(__dirname, '/blog/')
    }
}

Так как Ghost обрабатывает маршрут /blog, путь ресурсов предполагает, что /blog будет в маршруте, поэтому мне пришлось изменить его с /content.

Это отлично работает на http://example.com:9200/blog, но после настройки обратного прокси для /blog

location /blog {
    proxy_pass http://localhost:9200;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

Затем, пытаясь перейти к http://example.com/blog, все, что я могу получить, это html, активы не обслуживаются по этому маршруту, я подозреваю, что местоположение должно включать подстановочный знак, например location /blog/*?


person Michael Joseph Aubry    schedule 09.01.2015    source источник


Ответы (1)


Следующее помогло мне решить мою проблему.

Nginx - обратный прокси блог Ghost с /subfolder перенаправить

http://www.allaboutghost.com/how-to-install-ghost-in-a-subdirectory/

location ^~ /blog {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;

    proxy_pass http://127.0.0.1:2368;
    proxy_redirect off;
}
person Michael Joseph Aubry    schedule 09.01.2015