【发布时间】:2020-11-21 11:35:57
【问题描述】:
我正在使用 Node.js、Express 和 EJS 模板引擎构建一个简单的网站,但我无法让我的外部 CSS 文件加载到具有路由参数的路由上。我的代码如下所示:
const express = require("express");
const app = express();
var AWS = require('aws-sdk');
var uuid = require('uuid');
var request = require('request');
var Amplify = require('aws-amplify');
const { info } = require("console");
app.use(express.static("public"));
app.set("view engine", "ejs");
app.get("/Test1/", function(req, res){
res.render("Test1.ejs");
});
app.get("/Test2/:route", function(req, res){
res.render("Test2.ejs")
});
Test1.ejs 和 Test2.ejs 是完全相同的副本,一个是从另一个复制粘贴的。
我能够看到 CSS 文件在 Test1 上正确加载,但在 Test2 express 上发送的是 Test2.ejs 的 HTML 来代替实际的 CSS 文件。这无需重新加载或更改任何内容。如果 CSS 没有在我的任何路线上正确加载,我就不会那么困惑了,因为这表明我使用 express 的方式存在一些问题,但我无法弄清楚它是如何在我的所有路由上正常工作的其他路由并在使用路由参数时失败。我也尝试过实际使用路由参数,例如
app.get("/Test2/:route", function(req, res){
const routeParam = req.params.route;
res.render("Test2.ejs", {
routeParam: routeParam
});
});`
我还在页面中显示了 routeParam 以确保它正常工作,并且确实如此,除了页面仍在获取页面的 HTML 代替正确的 CSS 文件,导致其格式不正确。
感谢您的帮助,谢谢
【问题讨论】: