簡體   English   中英

如何在 Express 中將 JavaScript 文件鏈接到 HTML?

[英]How do I link a JavaScript file to HTML in Express?

我正在運行一個帶有 Express 的 NodeJS 服務器,使用 Handlebars 作為引擎。

app.use(express.static(publicDirPath))
(...)

app.engine("hbs",hbs({
extname: "hbs",
defaultView: "main",
layoutsDir: path.join(srcDirPath, "views/layouts"),
partialsDir: path.join(srcDirPath, "views/partials"),
}));  
(...)

app.listen(3000, () => {
  console.log("Server started at port 3000.");
});

我有一個登錄頁面:

app.get("/Login", (req, res) => {
  res.render("Login", { layout: "Loginlayout" });
});

app.get("/public/js/login.js", (req, res) => {
  res.header("Content-Type", "application/javascript")
  res.end();
});

– 這是使用這個 header:

 <head>
    <script src="/public/js/login.js" async></script>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
    <link rel="stylesheet" href="css/login.css">

    <title>Login</title>
  </head>

– 但我不能使用login.js中的任何功能。

我也遇到了一些“MIME 類型(“text/html”)不匹配”錯誤,但我想我通過使用修復了它們

res.header("Content-Type", "application/javascript")

– 但我仍然無法使用任何功能。 我也嘗試了多個瀏覽器,但沒有任何效果。

app.use(express.static(publicDirPath))發揮它的作用。 將本地 js/css 文件移動到publicDirPath目錄下,快遞將為您提供資產的路徑。

暫無
暫無

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

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