htaccess 将丢失的 bundle.*.js 版本重定向到 bundle.js 文件

htaccess redirect missing bundle.*.js version to bundle.js file

我正在使用 htaccess 重定向将丢失的资产发送到 Apache 404 进行优化。

# BEGIN Apache 404 for broken resouces
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(jpg|jpeg|png|gif|ico|icns|swf|bmp|css|js)$ - [nocase,redirect=404,last]
# END Apache 404 for broken resouces

虽然如果文件丢失,这也应该提供最后一个文件,但我想用以下内容更新它以避免缓存问题:

- 如果 bundle.[version].js 或 bundle.[version].css 缺失,则服务 bundle.js 或 bundle.css。目前无法实现这一点。有什么改进的想法吗?

serve bundle.js or bundle.css instead.

请注意,在您的评论中,您分别将其写为 build.jsbuild.css

您可以使用以下指令在 /wp-content/themes/custom-theme/build 子目录(包含 .js.css 文件)中创建另一个 .htaccess 文件:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^bundle\.\w+\.(js|css)$ bundle. [L]

或者,将以下指令添加到根目录 .htaccess 的顶部 现有指令之前:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/bundle\.\w+\.(js|css)$ /bundle. [L]

第一个选项的效率稍微高一些,因为它完全覆盖了父 .htaccess 文件中的指令,并且只在必要的请求上进行处理。但是,第二个选项可能更容易维护,因为它将所有指令保存在一个地方。