javascript - 使用 webpack 和 publicPath 获取静态资源
问题描述
重写了以下问题,因为我现在有一个可行的解决方案,但没有回答上述问题。
展示如何使用打包资源的不同场景的存储库webpack
名为example-webpack-dynamic-resources。它包含3个模块:
- 内联:一种解决方案,但在我的上下文中没有用(许多资源文件)
- 文件:使用插件webpack-require-from的解决方案
- 公共路径:还没有解决方案,显示我想如何使用
__webpack?public_path__
.
我想我已经阅读了有关 webpack 和publicPath
and的任何资源__webpack_public_path__
,但我没有让它工作。我尝试动态更改静态资源的路径,但失败了。
这是我的背景:
- 我构建了一个将在网页(HTML、CSS、Javascript)上使用的 Javascript 库。
- 它为小图像文件提供了很多 (>100) 静态资源,总大小 > 500 KB。浏览网站的用户只会使用其中的一小部分。
- 因此,我想将 CSS 打包到包中,但将图像资源保存在服务器上某处的目录中。它的默认路径是
/img
. - 只要我使用相同的结构(这意味着,只有在 下的图像
ROOT/img/**
,一切都可以。 - 但是图书馆的用户应该能够根据自己的意愿配置图像资源的路径。
您将在我的示例存储库example-webpack-dynamic-resources的模块中找到所有相关文件public-path-resources
。
webpack.js
:对 CSS 文件中引用的图像使用文件加载器。CSS 将由 style-loader 和 css-loader 内联。src/public-path.js
:使用默认值定义全局变量(无环境变量)。src/index.js
: 先要求public-path
,后逻辑。examples/exam1-root/index.html
:尝试使用子目录中的资产,lib
因此将值设置为__webpack_public_path__ = '/lib/
。不工作。examples/exam2-different-dirs/index.html
:将库移动到不同的目录(不相关),但使用最初定义pgnv-assets
的资产目录。在职的。examples/exam3-non-standard-dirs/index.html
:尝试改为my-assets
用作资产的目录。不工作。
运行时如何__webpack_public_path__
在 index.html 文件中定义?
解决方案
推荐阅读
- c# - Xamarin Forms 绑定来自 Resources/Drawable 文件夹的图像
- mysql - node、express、mysql更新多行不同的值数组
- kubernetes - 将 Kubernetes Kind 中容器的 sysctl 列入白名单
- docker - Docker nginx / 坏网关:使用 docker-compose 的多个应用程序
- ember.js - Ember 数据中的更改不显示 HTML 中的实时更改
- c# - 线程控制台应用程序
- c++ - 类模板部分特化中的转换
- android - 如何触发 build.gradle 并将新的依赖项下载到 gradle 缓存
- python - 如何将下面显示的 excel 函数转换为 python pandas 代码?
- delphi - 是否有可能找出连接是否被计量?