我不熟悉Web开发,在使用Heroku部署我的基本网站时遇到一些问题。创建应用程序后,我已成功将应用程序推送到git并将其部署到Heroku。另外,它确实可以在本地运行。
但是,打开应用程序后(使用“ Heroku打开”命令并单击Heroku应用程序页面本身上的“打开应用程序”按钮),我得到的页面显示为未找到。 / p>
我一直在寻找解决方案,非常感谢您的帮助。谢谢。
Procfile:
web: node server.js
package.json:
{
"name": "LHSite",
"version": "1.0.0",
"engines": {
"node": "13.12.x"
},
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "4.17.1"
},
"author": "Hunter Estrada",
"license": "ISC"
}
server.js :
var express = require('express');
var app = express();
var port = process.env.PORT || 8080
app.use(express.static(__dirname));
app.get("/", function(req, res) {
res.sendFile("/Users/<user>/CS/LHSite/Apr29Home.html");
}
app.listen(port, function() {
console.log("app running");
}
文件结构: file structure for my website
这是我的应用的网址:https://lh-anni-2.herokuapp.com
答案 0 :(得分:0)
express.static中间件与res.sendFile是分开的,您需要 直接在res.sendFile中使用绝对路径。您可以做到:
在当前项目文件夹中创建一个公共目录,并将html文件放在此处。
在server.js文件中包含路径模块,例如
const path = require('path');
res.sendFile(path.join(__dirname, './public', 'Apr29Home.html'));
注意:__dirname返回当前正在执行的脚本所在的目录。