【问题标题】:What is a simple/minimal browserconfig.xml for a web site什么是网站的简单/最小 browserconfig.xml
【发布时间】:2014-05-27 10:18:16
【问题描述】:

我不想对 Windows 8 和固定做任何特别或棘手的事情,我只是不想看到 404 Not Found 消息,因为 IE 在我的日志文件中查找browserconfig.xml

我是否可以将一个琐碎的browserconfig.xml 文件放入我的根目录中,以满足 IE 的要求,并在我决定稍后添加对 Window 8 的更好支持时充当良好的占位符?

【问题讨论】:

  • 这个折旧了吗?

标签: internet-explorer windows-8 http-status-code-404


【解决方案1】:

我在脑海中添加了元代码,但我仍然收到 browserconfig.xml 请求。

所以我认为最好的方法是;根据他们的说法:https://docs.microsoft.com/browserconfig.xml

<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
    <msapplication>
    </msapplication>
</browserconfig>

【讨论】:

    【解决方案2】:

    在微软的 MSDN 页面Browser configuration schema reference 上有一个示例。

    您将browserconfig.xml 文件放在网络服务器的根文件夹中。

    您还可以包括:

    <meta name="msapplication-config" content="none"/>
    

    在您的 HTML 中防止 IE 查找此文件,如果这对您来说也是可行的选项。

    【讨论】:

    • 虽然我的页面上有元标记,但我很少看到来自标识为 IE 11 的用户代理对 browserconfig.xml 的请求。所以可能真正摆脱这些 404 的唯一方法是还为 browserconfig.xml 添加一个空文件。我尝试使用空文件进行固定,并没有看到有或没有空文件的区别。
    • 那个例子不是“最简单/最小的”
    【解决方案3】:

    最简单的解决方案实际上是只使用官方的 Microsoft Browserconfig.xml 文件生成器:http://www.buildmypinnedsite.com

    您可以构建一个完整的 xml 文件,只需 3 个步骤即可获得您徽标的所有大小图像。我只是为我的网站做的,只用了 2 分钟。

    它将生成一个完整的 browserconfig.xml 文件,并在一个 zip 文件中提供所有带标题的图像。

    编辑 2015 年 1 月 8 日:我刚刚找到了另一个选项:http://realfavicongenerator.net/

    这个网站的好处是生成你的 browserconfig.xml 和你所有的 apple-touch-* 图标、favicon 等。基本上是一个一站式网站,可以一次性生成所有内容。

    【讨论】:

    • 这是一个很好的解决方案,但并没有真正回答 OP,因为他们只想要一个占位符。
    • 顶,完美 - 完成这项工作非常精细且完全自动化,之后您可以下载包含所有文件的完整包。太好了。
    • 不幸的是,这两个站点都没有创建 browserconfig.xml 文件。
    【解决方案4】:

    添加meta 标签可能有效,也可能无效。我们添加了这个标签,但我们仍然收到browserconfig.xml 请求的 404 错误。最后我们决定做一个简单的xml。

    我们的browserconfig.xml 看起来像这样,基本上它只是告诉我们 4 张图片的位置。

    <?xml version="1.0" encoding="utf-8"?>
    <browserconfig>
        <msapplication>
            <tile>
            <square70x70logo src="/mstile-70x70.png"/>
            <square150x150logo src="/mstile-150x150.png"/>
            <wide310x150logo src="/mstile-310x150.png"/>
            <square310x310logo src="/mstile-310x310.png"/>
            <TileColor>#8bc53f</TileColor>
            <TileImage src="/mstile-150x150.png" />
            </tile>
        </msapplication>
    </browserconfig>
    

    并将其放入您的 html 中:

    <meta name="msapplication-config" content="/browserconfig.xml" />
    

    现在好了

    【讨论】:

      【解决方案5】:

      您也可以将其添加到您的 HTML 中并将配置设置为“无”,如下所示:

      <meta name="msapplication-TileColor" content=" #009900" />
      <meta name="msapplication-square70x70logo" content="images/smalltile.png" />
      <meta name="msapplication-square150x150logo" content="images/mediumtile.png" />
      <meta name="msapplication-wide310x150logo" content="images/widetile.png" />
      <meta name="msapplication-square310x310logo" content="images/largetile.png" />
      <meta name="msapplication-config" content="none"/>
      

      来源:

      http://samples.msdn.microsoft.com/iedevcenter/PinnedSites/scenario1.html https://msdn.microsoft.com/library/dn320426

      【讨论】:

      • 添加所有这些元标记可能是最糟糕的解决方案,IMO。如果您这样做,您将在 每个 页面视图上将所有数据发送给您网站的每个 访问者。 browserconfig.xml 的两个优点是:1. 唯一能得到任何东西的是运行关心它的浏览器的人,以及 2. 浏览器可以缓存文件而无需再次下载。
      • @Chad - 这就是为什么你必须小心对这样的陈述如此绝对的原因,它忘记了你的用例并不是所有的用例 - 对于任何想要的人来说,这都是一个最佳解决方案将 PWA 打包为单个文件,但仍可将其安装为 Win8 应用程序/etc……
      【解决方案6】:

      还有第三种方法可以防止browserconfig.xml 用 404 错误填充您的日志文件。您可以从服务器返回一个空值 (444) 并关闭该位置的日志记录。这是相关的,因为 favicon.ico 会做同样的事情,忽略元头标签和调用它的浏览器(也生成 404)。问题不仅仅是这个不需要的文件。

      针对您在 browser.xml 上的日志中防止 404 错误的具体问题 - 对于 NGINX,您可以在 /etc/nginx/snippets/ 中创建一个新文件,然后在服务器块内的 /etc/nginx/sites-available/example.org 文件中创建 #include 该文件.

      示例:/etc/nginx/snippets/block-known-errors.conf 有以下内容:

      location ~* /(favicon.ico|browserconfig.xml)$
         { access_log off; log_not_found off; return 444; }
      

      然后在/etc/nginx/sites-available/example.org 的配置中添加:

      include /etc/nginx/snippets/block-known-errors.conf;
      

      NGINX 中的位置规范中的注意事项是使用正则表达式并且不区分大小写。因为它是location,所以必须在server 规范内。

      在实践中,我们实际上将包含嵌套在/etc/nginx/snippets/ 文件夹中,并根据安全/技术要求为特定站点设置一个全局包含和其他包含。这允许我们的端点通过添加一个文件或编辑现有文件来管理我们的日志,几乎可以立即修复一个全局问题。

      使用 OSSEC 和 ELK 堆栈,您只能看到这么多杂乱无章的东西。

      我确信 Apache 中的 mod_rewrite 也可以做到这一点。

      【讨论】:

      • 我非常喜欢这个解决方案,但我对关闭日志记录感到偏执
      猜你喜欢
      • 1970-01-01
      • 2011-02-20
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      相关资源
      最近更新 更多