如何通过Heroku部署修复未找到的错误

问题描述 投票:0回答:1

我不熟悉Web开发,在使用Heroku部署我的基本网站时遇到了一些问题。创建应用程序后,我已成功将应用程序推送到git并将其部署到Heroku。而且,它确实可以在本地运行。

但是,打开应用程序后(使用“ Heroku打开”命令并单击Heroku应用程序页面本身上的“打开应用程序”按钮,我得到的页面显示为[[未找到。

我一直在寻找解决方案,非常感谢您的帮助。谢谢。

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
node.js heroku deployment webdeploy
1个回答
0
投票
express.static中间件与res.sendFile是分开的,您需要直接在res.sendFile中使用绝对路径。你能行的:1.在当前项目文件夹中创建一个公共目录,并将您的html文件放在那里。2.在server.js文件中包含路径模块,例如

const path = require('path');

  1. 用下面的代码行替换您的res.sendFile

    res.sendFile(path.join(__ dirname,'./public','Apr29Home.html'));

    注意:__dirname返回当前正在执行的脚本所在的目录。

© www.soinside.com 2019 - 2024. All rights reserved.