引导链接和CSS文件未应用于特定URL。我如何解决它?告诉我是否需要任何其他文件来回答它

编程入门 行业动态 更新时间:2024-10-03 04:35:39

引导链接和CSS<a href=https://www.elefans.com/category/jswz/34/1771438.html style=文件未应用于特定URL。我如何解决它?告诉我是否需要任何其他文件来回答它"/>

引导链接和CSS文件未应用于特定URL。我如何解决它?告诉我是否需要任何其他文件来回答它

引导链接和CSS文件没有应用于url“/list/:customListName”,但是当我将其更改为“/:customListName”时,它以某种方式起作用。这背后的逻辑是什么以及如何将样式应用于此 url "/list/:customListName" ? app.js:-

const express = require('express');
const bodyParser = require('body-parser');
const date = require(__dirname + '/date.js');
const mongoose = require('mongoose');
mongoose.connect("mongodb://127.0.0.1:27017/todoListDB").then(() => console.log('connected')).catch(e => console.log(e));


const app = express();
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static(__dirname + "/public"));


const itemSchema = mongoose.Schema({
    name: {
        type: String,
        required: true,
    }
});
const Item = new mongoose.model('Item', itemSchema);

defaultItems = [
    { name: "Welcome to your Todo List" },
    { name: "Hit '+' button to add a new item" },
    { name: "<--Hit this to check" },
];

const listSchema = mongoose.Schema({
    name: {
        type: String,
        required: true,
    },
    items: [itemSchema]
});
List = mongoose.model('List', listSchema);


app.get("/", (req, res) => {
    const day = date.getDate();
    Item.find({}).then(foundItems => {
        if (foundItems.length === 0) {
            Item.insertMany(defaultItems).then(() => {
                res.redirect("/");
            }).catch((err) => {
                console.log(err);
            });
        } else {
            res.render("list", { listTitle: day, newListItems: foundItems });
        }
    })
});

app.post("/", (req, res) => {

    if ((x = req.body.newItem) !== "") {
        const itemName = req.body.newItem;
        Item.create({
            name: itemName
        });
        res.redirect("/");
    } else {
        res.redirect("/");
    }
});

// *************See here***************
app.get("/list/:customListName", (req, res) => {
    customListName = req.params.customListName;

    List.findOne({ name: customListName })
        .then((foundList) => {
            if (foundList) {
                res.render("list", { listTitle: foundList.name, newListItems: foundList.items })
            } else {
                List.create({
                    name: customListName,
                    items: defaultItems,
                });
                // *************See here***************
                res.redirect("/list/"+customListName);
            }
        })
        .catch((e) => { console.log('Error: ' + e); })

});

app.post("/delete", (req, res) => {
    const itemId = req.body.checkbox;
    Item.deleteOne({ _id: itemId }).then(() => {
        res.redirect("/");
    }).catch(e => console.log(e));
});


app.post("/work", (req, res) => {
    res.redirect("/work");
});

app.get("/about", (req, res) => {
    res.render("about", { listTitle: "About Me" });
});

app.listen(3000, () => {
    console.log("Server running on http://127.0.0.1:3000");
});

这是我在开发控制台中遇到的错误:-

list.ejs:-

<%- include('header') %>
    <div class="box" id="heading">
        <h1>
            <%= listTitle %>
        </h1>
    </div>

    <div class="box">

        <% newListItems.forEach(item=> { %>

            <form action="/delete" method="post">

                <div class="item">
                    <input type="checkbox" name="checkbox" value="<%= item._id %>" onchange="this.form.submit()">
                    <p>
                        <%= item.name %>
                    </p>
                </div>

            </form>
            <% }); %>

                <form class="item" action="/" method="post">
                    <input type="text" name="newItem" placeholder="New Item" autocomplete="off">
                    <button type="submit" name="list" value="<%= listTitle %>">+</button>
                </form>
    </div>

    <%- include('footer') %>

header.ejs:-

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="css/style.css">
    <title>Todo List</title>
</head>

<body>
回答如下:

简短回答:应该是

/css/style.scss
而不是
css/style.scss

<link rel="stylesheet" href="/css/style.css">

长答案:

<link/>
标签的
href
属性接受绝对 URL 或相对 URL。

带有和不带有前导斜杠

/
的相对 URL 的行为是不同的。 前导斜杠表示该链接相对于网站的根目录。

例如

当前 URL 是

http://localhost:3000/list/apple
,我们有这样的静态资源目录
<Project Root>/public/css/style.css

如果链接标签为

<link rel="stylesheet" href="css/style.css">
,则
style.css
的 HTTP 请求 URL 将为
http://localhost:3000/list/css/style.css

如果链接标签为

<link rel="stylesheet" href="/css/style.css">
,则
style.css
的 HTTP 请求 URL 将为
http://localhost:3000/css/style.css

当请求到达服务器时,

express
将查找相对于
css/style.css
目录的
public
文件。

更多推荐

引导链接和CSS文件未应用于特定URL。我如何解决它?告诉我是否需要任何其他文件来回答它

本文发布于:2024-05-31 06:59:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1771394.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件   告诉我   应用于   如何解决   链接

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!