我有一个React,express,mongo,webpack应用程序,在webpack.config.js
的output
对象中,有类似以下内容:
output: {
filename: "bundle.js",
path: __dirname + "/dist/bundle/",
publicPath: "/static/",
}
现在,我知道filename
是最终的捆绑代码,path
是捆绑包所在的位置,但是publicPath: "/static/"
呢?
publicPath文档说-
它允许您为应用程序内的所有资产指定基本路径。
例如,在开发中,我们可能有一个assets /文件夹,它位于索引页的同一级别上。很好,但是如果我们想将所有这些静态资产托管在生产中的CDN上怎么办?
我不太了解。我没有assets /文件夹,但是我的资产在public /目录中。它里面有media
和stylesheets
文件夹。
而且我也不知道我的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>
请帮帮我。我已经对此坚持了很长时间。
[publicPath
]指的是从index.html
所在状态开始的资产捆绑包所在的位置,因此Webpack可以为您设置路径。例如。
dist/
index.html
bundle/
bundle.js
bundle.css
在这种情况下,将是:publicPath: "./bundle"
publicPath Doc指出这是您的资产(如图像和其他东西)的存放地。这部分不会被编译。并且应该包含在生产中。