【问题标题】:Namecheap: Node JS Express App - App Route return 404 not foundNamecheap:Node JS Express App - App Route return 404 not found
【发布时间】:2019-10-05 19:32:41
【问题描述】:

尝试使用 NameCheap 共享主机启动 Simple Express 应用程序。

我已经按照此处NodeJS NameCheap Docs 的描述设置了我的 Node JS 应用程序

当前设置:

Application Root: url.com
Application URL: url.com
Application Startup File: server.js

我已经使用提供的按钮运行了 NPM 安装

我已尝试加载 URL http://url.com/hello 期望 Hello World 显示在页面中。

var express = require("express");
var app = express();
const port = 3001;

app.set("port", port);

app.get("/hello", function(req, res) {
  res.send("hello world");
});

app.listen(app.get("port"), () =>
  console.log("Started listening on %s", app.get("port"))
);

导航到http://url.com/hello 时得到的结果:

Not Found
The requested URL /index.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

【问题讨论】:

    标签: node.js express namecheap


    【解决方案1】:

    Namecheap 仅告诉您如何配置 nodejs 应用程序,但是它们的托管基于 cPanel,这需要您配置网络服务器(通常是 apache)。一旦你运行了一个应用程序,就会有一个特殊的按钮来为它注册 apache 配置,也就是让它从你的域运行。我不知道这些步骤,但您应该要求 NC 支持将您定向到他们的文档,以配置 apache 以运行您配置的 nodejs 应用程序。 如果他们没有链接他们知识库中的文章,请使用此链接:https://confluence1.cpanel.net/plugins/servlet/mobile?contentId=17190639#content/view/17190639 基本上,您现在需要的是在您的服务器中配置 cPanel 或 ssh 并在本地测试您的应用程序。有很多事情可能会导致您的问题,例如不正确的 apache 配置(您的默认端口 80 正在寻找 php 应用程序)、端口未打开/防火墙、应用程序未注册 - 所有这些都是 cPanel 特定的。 为了确保您正在阅读正确的文档,请在 namecheap cpanel 中检查 docs 按钮并查看以上所有内容。需要配置什么应该很明显 - 您的 nodejs 代码可能不是这里的原因

    【讨论】:

    • 尝试将 namecheap cpanel 添加到您的问题标题中,希望得到更好的答案
    • 与支持人员交谈后。是我的 .htaccess 阻止了它
    • 感谢您的帮助并耐心等待我的回复。我在 Express 和 Routing 上查找了所有内容,非常困惑......
    【解决方案2】:

    就我而言,这是 .htaccess 文件的问题。在网站公共目录中的 .htaccess 文件中添加以下规则对我有帮助:

    # CLOUDLINUX PASSENGER CONFIGURATION BEGIN
    PassengerAppRoot "/home/<user>/<your_nodejs_app_folder>"
    PassengerBaseURI "/."
    PassengerNodejs "/home/<user>/nodevenv/<nodejs_app>/<version>/bin/node"
    PassengerAppType node
    PassengerStartupFile <startup_script>.js
    # CLOUDLINUX PASSENGER CONFIGURATION END
    

    在将上述规则粘贴到您的 .htaccess 文件之前,对它们进行必要的更改。此外,以防万一,请通过客户支持确保您使用的端口是开放的。

    【讨论】:

      猜你喜欢
      • 2020-03-22
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 2021-05-24
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 2020-05-25
      相关资源
      最近更新 更多