【问题标题】:how to include bootstrap in a node-express project如何在 node-express 项目中包含引导程序
【发布时间】:2021-02-01 03:37:50
【问题描述】:

以下代码来自code author。基本上它是一个我想连接到后端的 bootstrap/css 项目。但是,我找不到使用以下代码呈现引导程序的方法:

文件格式:

  • 文件名
    • node_modules
    • 路线
      • public.js
    • 查看次数
      • 公共资产
        • CSS
        • js
        • img
      • public.ejs
    • app.js

app.js

const express = require('express');
const app = express();
const port=4000;
const publicRouter = require('./routes/public');
const path = require('path');

app.listen(port,()=>{
    console.log(`listening to port ${port}`);
});


app.set('view engine','ejs');
app.use(express.static(path.join(__dirname, 'views')));


    


app.use('/',publicRouter);

public.ejs

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>WebSite Title</title>
    <link rel="stylesheet" href="publicAssets/css/styles.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css">
</head>
<body>


    <div class="wrapper">
       

        <header>
        
        
            <div class="top-bar">

                <div class="row">
                    
                    <div class="col-md-8 col-lg-9 d-flex breaking-news-bar">
                        <div class="breaking-title"><h6>Trending</h6></div>
                        <div class="owl-carousel owl-theme owl-loaded breaking">
                            <div class="owl-stage-outer">
                                <div class="owl-stage">
                                    <div class="owl-item b-news-item"><a href="#">01.Lorem ipsum dolor sit amet.</a></div>
                                    <div class="owl-item b-news-item"><a href="#">02.Lorem ipsum dolor sit amet.</a></div>
                                    <div class="owl-item b-news-item"><a href="#">03.Lorem ipsum dolor sit amet.</a></div>
                                    <div class="owl-item b-news-item"><a href="#">03.Lorem ipsum dolor sit amet.</a></div>

                                </div>
                            </div>
                            <div class="owl-nav">
                                <div class="owl-prev">
                                    <i class="fas fa-angle-left"></i>
                                </div>
                                <div class="owl-next">
                                        <i class="fas fa-angle-right"></i>
                                    </div>
                            </div>
                            <!-- End breaking news -->
                        </div>
                    </div>

                    <div class="col-md-4 col-lg-3">

                    </div>

                </div>

            </div>
       
       


        </header>
    </div>


    <script src="publicAssets/js/bootstrap.min.js"></script>
    <script src="publicAssets/js/jquery-3.5.1.min.js"></script>
    <script src="publicAssets/js/custom.js"></script>
    <script src="publicAssets/js/owl.carousel.min.js"></script>
</body>
</html>

css 工作正常,但我不能使用引导程序

【问题讨论】:

    标签: jquery css node.js express bootstrap-4


    【解决方案1】:

    通过 ruing 包含 bootstrap 和 j Query
    npm install bootstrap@latest jquery@latest

    npm i bootstrap@latest jquery@latest

    现在检查您的静态中间件路径
    如果app.use(express.static(__dirname)) 表示您在主目录中

    包括简单的路径,如
    &lt;link rel="stylesheet" href="./node_modules/bootstrap/dist/css/bootstrap.min.css"/&gt;

    &lt;script src="./node_modules/node_modules/jquery/dist/jquery.min.js"&gt;&lt;/script&gt;

    &lt;script src="./node_modules/bootstrap/dist/js/bootstrap.min.js"&gt;&lt;/script&gt;

    如果您的路径位于某个文件夹中,例如 如果app.use(express.static(__dirname, "some folder" )) 表示您在主目录中

    包括简单的路径,如
    &lt;link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css"/&gt;

    &lt;script src="../node_modules/node_modules/jquery/dist/jquery.min.js"&gt;&lt;/script&gt;

    &lt;script src="../node_modules/bootstrap/dist/js/bootstrap.min.js"&gt;&lt;/script&gt;

    Note: 确保您的服务器文件或应用程序文件位于主目录中

    【讨论】:

      【解决方案2】:

      several ways 包含 Bootstrap,但所有这些都归结为 public.ejs&lt;head&gt; 元素中缺少的样式表。

      此外,当您包含脚本时,jquery-3.5.1.min.js 应该放在 bootstrap.min.js 前面,因为 Bootstrap 4 依赖于 jQuery。

      方法 1. 手动下载并包含所有资产

      这似乎是你的教程试图做的。

      1. 检查所有资产是否到位。如果不是,请重新下载。您的 publicAssets 文件夹应至少包含:
      • 公共资产
        • CSS
          • styles.css
          • bootstrap.min.css
        • js
          • bootstrap.min.js
          • jquery-3.5.1.min.js
      1. 添加样式表:
      <head>
        ...
        <link rel="stylesheet" href="publicAssets/js/bootstrap.min.css"></link>
        ...
      </head>
      
      1. 更改脚本顺序:
        ...
        <script src="publicAssets/js/jquery-3.5.1.min.js"></script>
        <script src="publicAssets/js/bootstrap.min.js"></script>
        ...
      </body>
      

      您可能还应该下载 font-awesome 作为本地资产,并在完成开发后使用 Webpack 或 Browserify 等捆绑程序。

      方法2. 将其作为节点模块包含进来

      1. 在命令行输入:

      npm i bootstrap@latest jquery@latest

      1. 添加样式表
      <head>
        ...
        <link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"></link>
        ...
      </head>
      
      1. 将脚本更改为:
        ... 
        <script src="node_modules/node_modules/jquery/dist/jquery.min.js"></script>
        <script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
        ...
      </body>
      

      请记住,这种方法几乎需要使用某种捆绑器,但您可能还是想这样做。

      方法 3. 将所有资产作为来自 CDN 的链接添加

      完全跳过下载资产并使用其网络托管版本:

      <head>
        ...
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
        ...
      </head>
      <body>
        ... 
        <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
        ...
      </body>
      

      【讨论】:

        【解决方案3】:

        只需在 head 标签中包含 css bootstrap cdn: &lt;head&gt; &lt;link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous"&gt; &lt;/head&gt;

        【讨论】:

          猜你喜欢
          • 2016-10-12
          • 2019-08-28
          • 2016-02-04
          • 2019-01-31
          • 1970-01-01
          • 2014-04-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多