收藏夹变得越来越不守规矩了。为了迎合所有浏览器/平台,我正在使用这项出色的服务。我得到的是以下文件:
android-chrome-192x192.png favicon-16x16.png mstile-150x150.png
android-chrome-512x512.png favicon-32x32.png safari-pinned-tab.svg
apple-touch-icon.png favicon.ico
browserconfig.xml manifest.json
Run Code Online (Sandbox Code Playgroud)
推荐的路径是 Web 根目录,因为某些浏览器不支持自定义路径。我真的不想在我的网络根目录中出现这样的混乱。因此,我正在寻找一种location
配置,将它们全部放置在其专用目录中,同时让客户端认为它们位于 Web 根目录中。
我见过这样的精确匹配规则:
location = /favicon.ico {
root /var/www/path/to/favicons;
}
Run Code Online (Sandbox Code Playgroud)
但是仅针对这些文件的 10 个完全匹配位置并不是一个很好的解决方案。我还可以做些什么?
试试这个 - 这是一个不区分大小写的正则表达式匹配任何包含子字符串图标的内容,加上对大多数其他表达式的测试。我输入了两个完全匹配的内容,因为这些 URL 有可能在应用程序中使用。如果应用程序中使用“favicon”,则会导致问题。
# Better option below for this line
location ~* favicon|apple-touch-icon|android-chrome-|mstile-|safari-pinned-tab.svg|browserconfig.xml {
root /var/www/path/to/favicons;
}
location = /browserconfig.xml {
root /var/www/path/to/favicons;
}
location = /manifest.json {
root /var/www/path/to/favicons;
}
Run Code Online (Sandbox Code Playgroud)
我已经进行了快速测试,这似乎有效。
Tero Kilkanen提供了这个位置,这将是一个更好的匹配。它仅从根目录开始匹配,并且具有非捕获组。
location ~* ^/(?:favicon|apple-touch-icon|android-chrome-|mstile-|safari-pinned-tab.svg|browserconfig.xml|manifest.json)
Run Code Online (Sandbox Code Playgroud)
但是,我可能只是将所有位置块匹配放入一个文件中并包含它。我认为精确匹配会更快一些,而且我的 Nginx 配置文件最多可以达到 500 行。
归档时间: |
|
查看次数: |
5603 次 |
最近记录: |