javascript - 部署时页面未呈现
问题描述
我们使用 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 时,它会显示所有代码,根本没有呈现。
解决方案
我不确定 CPanel 是如何工作的,但据我所知(我确实使用 MERN 堆栈),您需要将所有代码放在一个文件中。因此,您需要yarn run build
or npm run build
,它将创建一个构建文件夹。然后你只上传那个文件夹并在你的主机中指定它
推荐阅读
- python - Pandas 的 Airflow 并行任务
- javascript - Firebase Firestore endBefore() 处理数据末尾
- bash - 如何使用 sed 或任何其他方法仅替换 magento envfile 中的 dbpassword
- architecture - 构建应用程序的授权在哪里是必要的?
- python - Django - 模型在字符串 'MM/DD/YYYY' 中有日期,在这种情况下我如何 order_by(date)?
- rust - 生成图像的快速 2D 绘图
- javascript - 在按钮单击事件上模拟击键的问题
- html - 如何使用 selenium 在跨度内定位字符串
- math - 公钥是如何从比特币中的私钥推导出来的?
- java - JAVA:哪个对象在多线程中调用 run() 方法