什么是网站的简单/最小browserconfig.xml


111

我不想对Windows 8和固定进行任何特殊或棘手的操作,我只是不想看到404 Not Found消息,因为IE browserconfig.xml在我的日志文件中查找滚动。

browserconfig.xml我是否可以在我的根目录中放入一个琐碎的文件,该文件可以满足IE并充当好占位符,如果我决定以后再添加对Window 8的更好支持,该文件是否有用?

Answers:


79

我将元代码添加到我的头上,但我仍然仍然收到browserconfig.xml请求。

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

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

60

Microsoft的MSDN页面“ 浏览器配置架构参考”中有一个示例。

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

您还可以包括:

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

在您的HTML中,以防止IE查找此文件(如果可以的话)。


6
尽管我的页面上有meta标记,但很少看到来自标识为IE 11的用户代理对browserconfig.xml的请求。因此,摆脱这些404的真正唯一方法可能是还为browserconfig添加一个空文件。 xml。我尝试使用空文件进行固定,无论是否有空文件,都看不到差异。
Gerd K

4
该示例不是“最简单/最小”的示例
HorusKol 2015年

41

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

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

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

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

该网站的好处是生成您的browserconfig.xml以及所有apple-touch- *图标,favicon等。基本上,一站式网站可以一次生成所有内容。


3
这是一个很好的解决方案,但并不能真正回答OP,因为他们只需要一个占位符。
罗布(Rob)

最佳,完美-可以非常完美地完成这项工作,然后您可以下载其中包含所有文件的完整软件包。大。
johngrinder '16

不幸的是,这两个站点都没有创建browserconfig.xml文件。
彼得

23

添加meta标签可能会,也可能不会。我们添加了此标签,但仍收到404错误browserconfig.xml始终始终请求。最后,我们决定做一个简单的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" />

现在可以了


6

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

<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


6
添加所有这些元标记可能是最糟糕的解决方案,IMO。如果这样做,您将在每个页面视图上将所有数据发送到站点的每个访问者。browserconfig.xml的两个优点是:1.唯一获得任何好处的人都是运行在乎它的浏览器的人;以及2.浏览器可以缓存文件而无需再次下载。
乍得

5

还有第三种方法可以防止browserconfig.xml用404错误填充日志文件。您可以从服务器返回空值(444),然后仅关闭该位置的日志记录。这是相关的,因为favicon.ico忽略了meta head标签和浏览器调用它(也生成404),因此执行相同的操作。问题不仅仅在于这个不需要的文件。

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

示例:/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也可以做到这一点。


我非常喜欢这种解决方案,但是我对关闭日志记录感到很疑惑
Caleb,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.