在Webpack中publicPath:“ / static /”是做什么的?

问题描述 投票:0回答:2

我有一个React,express,mongo,webpack应用程序,在webpack.config.jsoutput对象中,有类似以下内容:

  output: {
    filename: "bundle.js",
    path: __dirname + "/dist/bundle/",
    publicPath: "/static/",
  }

现在,我知道filename是最终的捆绑代码,path是捆绑包所在的位置,但是publicPath: "/static/"呢?

publicPath文档说-

它允许您为应用程序内的所有资产指定基本路径。

例如,在开发中,我们可能有一个assets /文件夹,它位于索引页的同一级别上。很好,但是如果我们想将所有这些静态资产托管在生产中的CDN上怎么办?

我不太了解。我没有assets /文件夹,但是我的资产在public /目录中。它里面有mediastylesheets文件夹。

而且我也不知道我的views/index.ejs文件中的情况。我的应用程序中没有index.html文件,而是index.ejs文件。看起来对吗?好吧,该应用程序似乎正在运行,但我似乎无法理解。

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel='stylesheet' href='/static/bundle.css' />
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/bulma.min.css">
    <script src="https://kit.fontawesome.com/afb88cf987.js" crossorigin="anonymous"></script>
  </head>
  <body>
    <div id="root"></div>
    <script src="/static/bundle.js"></script>
  </body>
</html>

请帮帮我。我已经对此坚持了很长时间。

javascript webpack ejs
2个回答
0
投票

[publicPath]指的是从index.html所在状态开始的资产捆绑包所在的位置,因此Webpack可以为您设置路径。例如。

dist/
     index.html
     bundle/
          bundle.js
          bundle.css

在这种情况下,将是:publicPath: "./bundle"


0
投票

publicPath Doc指出这是您的资产(如图像和其他东西)的存放地。这部分不会被编译。并且应该包含在生产中。

© www.soinside.com 2019 - 2024. All rights reserved.