【问题标题】:How to include static files in express js如何在 express js 中包含静态文件
【发布时间】:2017-02-16 04:18:34
【问题描述】:

我正在使用带有节点 js 的 express js 框架,并且在我的 server.js 文件中,我使用过

app.use('/api',router);

在我的 ejs 文件中,当我使用脚本标签时

<script src = main.js>

我收到错误消息“无法获取 http://localhost:3000/api/main.js” 我如何在 ejs 中包含这些文件

请帮忙!!!

【问题讨论】:

  • 为什么首先要包含带有 script 标记的引导 css 文件?为什么不用&lt;link href="css/bootstrap.min.css" rel="stylesheet" media="screen"&gt; 直接引用而不是静态文件?
  • app.use 尝试将其更改为app.get('/api',function(req,res){ res.send('Huston we have lift off'); });
  • @UmakantMane 非常感谢!我使用了 app.use(express.static(__dirname + '/public'));效果很好!

标签: javascript node.js express ejs


【解决方案1】:

你可以使用 express.static 中间件

app.use('/public', express.static('directory/containing/your/files'));

express.static 的参数是包含您希望设为静态的所有文件的目录的路径(您提供的路径可以是相对于您启动节点进程的目录,也可以是绝对路径),该目录应该在您的文件系统中可用。
然后您可以要求您的资源,例如:&lt;img src='/public/imagesA.jpg'&gt;
'/public' 挂载路径是可选的,但建议使用

【讨论】:

    【解决方案2】:

    在 app.js 中你必须添加静态文件夹目录访问权限

    app.use(express.static(path.join(__dirname, 'public')));
    

    在公共文件夹中添加您的文件夹文件

    --public
    ----javascript
    ----css
    ----img
    

    在 javascript 中添加你的 main.js

    并在 ejs 中添加

    <script src = "javascript/main.js"></script>
    

    【讨论】:

      【解决方案3】:

      您通过 Express 中包含的中间件提供静态文件 - express.static('folder/with/resources')。为此,您可以使用app.use 将其添加到中间件链中。

      假设您想通过公共 URL /static 提供位于本地文件夹 /dist 中的静态文件。

      import express from 'express';
      const app = express();
      
      app.use('static', express.static('dist'));
      

      阅读更多相关信息here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-15
        • 2019-01-28
        • 1970-01-01
        • 1970-01-01
        • 2013-06-27
        • 1970-01-01
        • 2018-05-15
        • 1970-01-01
        相关资源
        最近更新 更多