簡體   English   中英

快速根路由在生產中不起作用

[英]Express root route not working in production

我創建了一個簡單的Node應用程序,該應用程序具有5條提供不同HTML文檔的路由。 在本地主機上運行時,所有路由都可以使用,但是當我在生產環境中運行應用程序時,我的根路由將提供404頁面,這意味着該路由不存在。

我已經按照他們的指南中的指示設置了A2主機。 您可以在此處測試該應用程序

我猜問題是從指南中復制的.htaccess文件,但我聽不懂其中的任何一行。 這是位於public_html文件夾中的代碼:

app.js

const path = require("path");

const express = require("express");
const bodyParser = require("body-parser");

const appRoutes = require("./routes/app");
const errorController = require("./controllers/error");

const app = express();
app.set("view engine", "ejs");

app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, "public")));

app.use(appRoutes);
app.use(errorController.get404);

app.listen(40000, () => console.log("Server is up on port 40000!"));

路線/ app.js

const express = require("express");

const appController = require("../controllers/app");

const router = express.Router();

router.get("/", appController.getIndex);
router.get("/work", appController.getWork);
router.get("/services", appController.getServices);
router.get("/blog", appController.getBlog);
router.get("/contact", appController.getContact);

module.exports = router;

控制器/ app.js

exports.getIndex = (req, res, next) => {
  res.render("index");
};

exports.getWork = (req, res, next) => {
  res.render("work");
};

exports.getServices = (req, res, next) => {
  res.render("services");
};

exports.getBlog = (req, res, next) => {
  res.render("blog");
};

exports.getContact = (req, res, next) => {
  res.render("contact");
};

控制器/ error.js

exports.get404 = (req, res, next) => {
  res.status(404).render("404");
};

的.htaccess

RewriteEngine On
RewriteRule ^$ http://127.0.0.1:40000/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:40000/$1 [P,L]

由於您可以通過端口40000進入主頁 ,因此問題肯定在.htaccess文件中。

您可以嘗試在最后一條規則中添加斜杠嗎?

RewriteRule ^/(.*)$ http://127.0.0.1:40000/$1 [P,L]

或在此之前添加

RewriteBase /

.htaccess文件是問題所在,在頂部添加以下文件后,它現在可以工作:

DirectoryIndex disabled

感謝您的幫助!

暫無
暫無

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

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