【发布时间】:2019-10-21 20:18:12
【问题描述】:
所以,这是我的情况。我有一个 JavaScript 应用程序,我将哈希附加到文件名,这是 Webpack 输出的标准。这样,浏览器可以安全地缓存内容,而新的加载由更改的文件哈希控制。
我的问题是我需要其他应用程序来访问我的应用程序,并且每次哈希更改时它们都无法更新。所以我需要这样的请求:
https://my-domain.com/assets/js/app.js
被重定向到
https://my-domain.com/assets/js/app.ab12cd34.js
我的应用程序当前使用 nginx 来提供页面,但 nginx 是静态的。我不知道如何配置它来动态识别散列文件名并返回它。
应用正在部署到 Pivotal CloudFoundry 环境。 PCF 支持在 nginx.conf 文件中评估动态 Ruby 代码,因此这似乎是一种简单的解决方法。不幸的是,我的公司要求 nginx.conf 通过一个特殊的解析器来强制执行安全标头。这个解析器只知道 nginx 语法,并且会破坏那里的任何 Ruby 代码。
所以,这让我有了 Webpack。我开始研究 Webpack 在构建过程中修改文件的方法,并在 copy-webpack-plugin 中发现了 transform() 函数。它能够完全按照我的需要修改文件。但是,获取哈希文件名仍然是一个挑战。
所以,我希望有一些方法可以访问这个插件中的哈希文件名,以便我可以将它注入到 nginx.conf 中。
或者,如果有人知道解决我核心问题的另一种方法,我会全力以赴。
【问题讨论】: