最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Nuxt模块将另一个网站添加为serverMiddleware

运维笔记admin10浏览0评论

Nuxt模块将另一个网站添加为serverMiddleware

Nuxt模块将另一个网站添加为serverMiddleware

The idea

首先,你有一个像其他任何一个主要的Nuxt网站。然后将我的模块添加到项目中。我的模块然后将一个子域名“admin.example”添加到您的项目中,该项目是一个完全充实的基于Nuxt的网站,它自己的项目流程,但不是必须单独启动两个网站项目我的想法是,我可以创建我的一个网站项目,然后是一个模块项目,它添加了另一个网站,将三个项目分成两个。

Code

module.js

this.addServerMiddleware(vhost('admin.website', adminApp));

adminApp.js

const {Nuxt, Builder} = require('nuxt');

const config = require('../admin/nuxt.config');
config.dev = true;

const nuxt = new Nuxt(config);

if (nuxt.options.dev) {
  new Builder(nuxt).build()
    .catch(function(error) {
      console.log(error);
    })
}

module.exports = nuxt.render;

来自admin网站的nuxt.config.js的一部分

// __dirname leads to my modules directory
// process.cwd() leads to the main websites folder
module.exports = {
  mode: 'universal',
  srcDir: __dirname,
  rootDir: __dirname,
  modulesDir: process.cwd(),

The problem

每当我去“admin.website”时,它会产生以下消息:

我已经尝试了各种变化和调整,但似乎没有任何工作。据我所知,它可能与以下事实有关:A)网站建在某处,它找不到生成的资源文件,或B)我没有为意大利面怪物祈祷。

我已经尝试将adminApp导出为使用app.use(nuxt.render)的Express应用程序,但导致相同的错误,所以我确定这不是问题。我尝试过使用适用于api.website的Express应用程序并且工作得很好,所以我知道我喜欢这个| - |接近使这一切工作。添加这样的子域确实有效,每个子域都可以是Express应用程序,但由于某些原因,Nuxt在使用这种方式时找不到任何资源。根据/ nuxt.render(req, res)你可以看到reqres作为参数,这应该意味着我不需要通过Express应用程序使用它,serverMiddleware已经是一个Express应用程序。

思考?

回答如下:

在通过无服务器提供应用程序之前,我遇到了此错误。我认为您需要在nuxt.config.js中为两个应用程序显式设置publicPath或buildDir以使设置工作。您的问题可能是所有构建资产都在同一文件夹中生成,导致其中一个应用程序找不到构建资产。 buildDir属性在nuxt.config.js上设置,并且publicPath设置在build属性上定义。

更多信息:

https://nuxtjs/api/configuration-builddir

https://nuxtjs/api/configuration-build#publicpath

发布评论

评论列表(0)

  1. 暂无评论