【问题标题】:page not rendering when deploying部署时页面未呈现
【发布时间】:2021-12-01 22:44:57
【问题描述】:

我们使用 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 时,它显示所有代码,根本没有渲染。

【问题讨论】:

    标签: javascript css node.js express ejs


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      仅通过复制文件进行静态部署仅适用于静态应用程序,例如React 应用程序的构建文件夹。

      必须安装 Node.js 并启动服务器才能让您的应用程序正常工作。 This tutorial 在 cpanel 中执行此操作时应该会为您提供帮助。

      【讨论】:

        猜你喜欢
        • 2012-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-16
        • 2014-04-18
        • 1970-01-01
        相关资源
        最近更新 更多