簡體   English   中英

Namecheap:Node JS Express應用程序-未找到應用程序路由返回404

[英]Namecheap: Node JS Express App - App Route return 404 not found

嘗試使用NameCheap共享主機啟動Simple Express應用程序。

我已經按照此處所述設置了Node JS應用程序, NodeJS NameCheap Docs

當前設置:

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.

Namecheap僅告訴您如何配置nodejs應用程序,但是它們的托管基於cPanel,這需要您配置Web服務器(通常為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代碼可能不是這里的原因

就我而言,這是.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文件之前,請對它們進行必要的更改。 另外,以防萬一,請通過客戶支持確保您使用的端口已打開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM