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.js
和 build.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
文件中的指令,并且只在必要的请求上进行处理。但是,第二个选项可能更容易维护,因为它将所有指令保存在一个地方。
我正在使用 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
orbundle.css
instead.
请注意,在您的评论中,您分别将其写为 build.js
和 build.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
文件中的指令,并且只在必要的请求上进行处理。但是,第二个选项可能更容易维护,因为它将所有指令保存在一个地方。