Web apple-touch.png:在nginx中创建大小为0的文件或句柄?

Web apple-touch.png:在nginx中创建大小为0的文件或句柄?,web,nginx,Web,Nginx,我希望避免因“apple touch…png”等丢失文件而出现nginx错误消息,我看到两个选项: 为所有项目中的所有apple touch…png文件创建一个空文件(使用Bash脚本) 使nginx为这些文件返回一个空文件(在所有虚拟服务器中使用include语句) 以下哪种方法是首选的,或者有更好的方法来处理这些问题?如果您尝试的是保持一个干净的访问日志,那么您可以这样做 location ~* \.(jpg|jpeg|gif|png|ico)$ { access_log

我希望避免因“apple touch…png”等丢失文件而出现nginx错误消息,我看到两个选项:

  • 为所有项目中的所有apple touch…png文件创建一个空文件(使用Bash脚本)
  • 使nginx为这些文件返回一个空文件(在所有虚拟服务器中使用include语句)

  • 以下哪种方法是首选的,或者有更好的方法来处理这些问题?

    如果您尝试的是保持一个干净的访问日志,那么您可以这样做

    location ~* \.(jpg|jpeg|gif|png|ico)$ {
        access_log        off;
        log_not_found     off;
    }
    
    或者你可以

    location ~* apple-touch.png {
        empty_gif;
    }
    
    这将使nginx提供一个
    1px x 1px
    空的gif文件。
    编辑:使用try\u文件

    location ~* \.(jpg|jpeg|gif|png|ico)$ {
    # or location ~* apple-touch.png if you want
       try_files $uri /images/empty.gif;
    }
    

    如果
    $uri
    不存在,它将提供第二个图像,而不是本例中的
    /images/empty.gif

    有趣!当图像存在时(如果某些域中有一些图像),我如何为它们提供服务,并在日志中对不存在的内容保持沉默?第一个
    log\u not\u found off
    意味着如果你没有找到图像,就不要在访问日志中记录404,这不是你想要的吗?你可能是对的:)我会试试!两个问题:1)我必须将此块添加到每个服务器定义中,对吗?2) try\u文件可以用于相同的目的吗?