首页 > 解决方案 > 部署时页面未呈现

问题描述

我们使用 node、express 和 ejs 构建了一个 Web 应用程序。我们想部署到 CPanel。我们复制了文件夹,但页面未呈现。我们是否需要更改路由以反映新的文件夹结构和/或在 CPanel 服务器中安装节点和所有依赖项?我确实移动了一些东西并在路线上玩了一下,但没有取得多大成功。在我的本地主机上,我可以完美地看到它,但是一旦启动它就不起作用了。

到目前为止,我的 index.ejs 是这样的:

<head>
    <meta charset="UTF-8">
    <title>Test de Zülliger</title>
    <link rel="stylesheet" href="styles/style.css">
    <link rel="shortcut icon" href="images/favicon.png">
</head>

app.js 是这样的:

const express = require('express');
const path = require('path');
const methodOverride = require('method-override');
const app = express();
const ejsMate = require('ejs-mate');

app.engine('ejs', ejsMate);
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));


app.use(express.urlencoded({ extended: true }))
app.use(methodOverride('_method'));
app.use(express.static(path.join(__dirname, 'public')))


app.get('/', (req, res) => {
  res.render('index')
});

app.get('/localizaciones', (req, res) => {
  res.render('localizaciones/map')
});

app.get('/drawingpad', (req, res) => {
  res.render('drawingpad/drawing-pad')
});

app.get('/finalizar', (req, res) => {
  res.render('finalizar/finalizar')
});

const port = process.env.PORT || 3000;
app.listen(port, () => {
  console.log(`Serving on port ${port}`)
});

我的文件夹结构:

在此处输入图像描述

我确实将 index.ejs 放在视图中并且没有任何区别,CSS 不会呈现,当在浏览器上手动编写 map.ejs 时,它会显示所有代码,根本没有呈现。

标签: javascriptcssnode.jsexpressejs

解决方案


我不确定 CPanel 是如何工作的,但据我所知(我确实使用 MERN 堆栈),您需要将所有代码放在一个文件中。因此,您需要yarn run buildor npm run build,它将创建一个构建文件夹。然后你只上传那个文件夹并在你的主机中指定它


推荐阅读