<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi,<br>
      <br>
      i found the issue!<br>
      <br>
      Solution: When enabling the webp caching compatibility in WP
      Rocket (WordPress plugin), the nginx rules / config could not
      work. Because WP Rocket adds ".webp" as suffix to all .jpg images.
      So having the suffix set to bla.jpg.webp, the Nginx location ( <i>location
        ~ \.(jpg|png)$ {</i> ) for sure could not match! So disabling
      the webp caching compatibilty in WP Rocket solves the problem.</p>
    <p>Thanks to Francis to have opened my thinking that Nginx would be
      the problem!<br>
      <br>
      Best,<br>
      Martin<br>
    </p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">Am 07.10.22 um 12:04 schrieb Martin
      Wolfert:<br>
    </div>
    <blockquote type="cite"
      cite="mid:bd53687b-7a09-22cf-7e8a-3ec2751ab701@martin-wolfert.de">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p>Hi,<br>
        <br>
        well, i would say thet using curl, delivering avif works:</p>
      <p><img moz-do-not-send="false"
          src="cid:part1.axWAWgtS.B1FJN0nP@martin-wolfert.de" alt=""
          class="" width="1098" height="207"></p>
      <p>Downloading the jpg without headers gives back another filesize
        as with given webp and avif headers.<br>
        So ... yes, also my configuration seams to work with curl.</p>
      <p>Why browsers who should support avif only serve webpand not
        avif  (e.g. Chrome <span style="color: rgb(95, 99, 104);
          font-family: Roboto, system-ui, sans-serif; font-size: 13px;
          font-style: normal; font-variant-ligatures: normal;
          font-variant-caps: normal; font-weight: 400; letter-spacing:
          normal; orphans: 2; text-align: start; text-indent: 0px;
          text-transform: none; white-space: normal; widows: 2;
          word-spacing: 0px; -webkit-text-stroke-width: 0px;
          text-decoration-thickness: initial; text-decoration-style:
          initial; text-decoration-color: initial; display: inline
          !important; float: none;">106.0.5249.103<span> </span></span>) 
        ... I have no clue.<br>
        I really hope the Chrome developers do not distinguish between
        Chrome on Arm (MacBook M1 & M2) and Intel.<br>
        <br>
        Best,<br>
        Martin<br>
      </p>
      <br>
      <div class="moz-cite-prefix">Am 06.10.22 um 23:43 schrieb Francis
        Daly:<br>
      </div>
      <blockquote type="cite"
        cite="mid:20221006214332.GA4185@daoine.org">
        <pre class="moz-quote-pre" wrap="">On Thu, Oct 06, 2022 at 02:30:08PM +0200, Martin Wolfert wrote:

Hi there,

</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">In "/var/www/htdocs/blog.lichttraeumer.de/wp-content/uploads/2022/05" i have
located .jpg, .webp and .avif files:
</pre>
        </blockquote>
        <pre class="moz-quote-pre" wrap="">Thanks for the details.

Both ideas seem to work for me, when testing with curl:

===
$ cat /etc/nginx/conf.d/test-avif.conf
server {
        listen 127.0.0.5:80;
        root /tmp/t3;

        set $img_suffix "";
        if ($http_accept ~* "webp") {
                set $img_suffix ".webp";
        }
        if ($http_accept ~* "avif") {
                set $img_suffix ".avif";
        }
        location ~ \.(jpg|png)$ {
                try_files $uri$img_suffix $uri $uri/ =404;
        }
}
$ mkdir /tmp/t3
$ echo one.png > /tmp/t3/one.png
$ echo one.png.avif > /tmp/t3/one.png.avif

$ curl <a class="moz-txt-link-freetext" href="http://127.0.0.5/one.png" moz-do-not-send="true">http://127.0.0.5/one.png</a>
one.png
$ curl -H Accept:webp <a class="moz-txt-link-freetext" href="http://127.0.0.5/one.png" moz-do-not-send="true">http://127.0.0.5/one.png</a>
one.png
$ curl -H Accept:avif <a class="moz-txt-link-freetext" href="http://127.0.0.5/one.png" moz-do-not-send="true">http://127.0.0.5/one.png</a>
one.png.avif

===
$ cat /etc/nginx/conf.d/test-avif-map.conf
map $http_accept $webp_suffix {
        "~image/webp" "$uri.webp";
}
map $http_accept $avif_suffix {
        "~image/avif" "$uri.avif";
}

server {
        listen 127.0.0.6:80;
        root /tmp/t4;

        location ~ \.(jpg|jpeg)$ {
                try_files $avif_suffix $webp_suffix $uri =404;
        }
}
$ mkdir /tmp/t4
$ echo one.jpg > /tmp/t4/one.jpg
$ echo one.jpg.webp > /tmp/t4/one.jpg.webp
$ echo one.jpg.avif > /tmp/t4/one.jpg.avif
$ echo two.jpg.webp > /tmp/t4/two.jpg.webp

$ curl <a class="moz-txt-link-freetext" href="http://127.0.0.6/one.jpg" moz-do-not-send="true">http://127.0.0.6/one.jpg</a>
one.jpg
$ curl -H Accept:image/avif <a class="moz-txt-link-freetext" href="http://127.0.0.6/one.jpg" moz-do-not-send="true">http://127.0.0.6/one.jpg</a>
one.jpg.avif
$ curl -H Accept:image/webp <a class="moz-txt-link-freetext" href="http://127.0.0.6/one.jpg" moz-do-not-send="true">http://127.0.0.6/one.jpg</a>
one.jpg.webp
$ curl -H Accept:image/other <a class="moz-txt-link-freetext" href="http://127.0.0.6/one.jpg" moz-do-not-send="true">http://127.0.0.6/one.jpg</a>
one.jpg
$ curl -H Accept:image/avif,image/webp <a class="moz-txt-link-freetext" href="http://127.0.0.6/one.jpg" moz-do-not-send="true">http://127.0.0.6/one.jpg</a>
one.jpg.avif
$ curl -H Accept:image/avif,image/webp <a class="moz-txt-link-freetext" href="http://127.0.0.6/two.jpg" moz-do-not-send="true">http://127.0.0.6/two.jpg</a>
two.jpg.webp
$

===

Do they work for you, when testing with curl?

If not -- why not / what is different between your test config and my test config?

And if so -- what is different between the curl request and the Firefox request?

Thanks,

        f
</pre>
      </blockquote>
      <pre class="moz-signature" cols="72">-- 
Pflichtinformationen gemäß Artikel 13 DSGVO
Im Falle des Erstkontakts sind wir gemäß Art. 12, 13 DSGVO verpflichtet, Ihnen folgende datenschutzrechtliche Pflichtinformationen zur Verfügung zu stellen:
Wenn Sie uns per E-Mail kontaktieren, verarbeiten wir Ihre personenbezogenen Daten nur, soweit an der Verarbeitung ein berechtigtes Interesse besteht (Art. 6 Abs. 1 lit. f DSGVO), 
Sie in die Datenverarbeitung eingewilligt haben (Art. 6 Abs. 1 lit. a DSGVO), die Verarbeitung für die Anbahnung, Begründung, inhaltliche Ausgestaltung oder Änderung eines 
Rechtsverhältnisses zwischen Ihnen und uns erforderlich sind (Art. 6 Abs. 1 lit. b DSGVO) oder eine sonstige Rechtsnorm die Verarbeitung gestattet. 
Ihre personenbezogenen Daten verbleiben bei uns, bis Sie uns zur Löschung auffordern, Ihre Einwilligung zur Speicherung widerrufen oder der Zweck für die Datenspeicherung entfällt 
(z. B. nach abgeschlossener Bearbeitung Ihres Anliegens). Zwingende gesetzliche Bestimmungen – insbesondere steuer- und handelsrechtliche Aufbewahrungsfristen – bleiben unberührt. 
Sie haben jederzeit das Recht, unentgeltlich Auskunft über Herkunft, Empfänger und Zweck Ihrer gespeicherten personenbezogenen Daten zu erhalten. Ihnen steht außerdem ein Recht auf 
Widerspruch, auf Datenübertragbarkeit und ein Beschwerderecht bei der zuständigen Aufsichtsbehörde zu. Ferner können Sie die Berichtigung, die Löschung und unter bestimmten 
Umständen die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten verlangen. Details entnehmen Sie meiner
Datenschutzerklärung unter <a class="moz-txt-link-freetext" href="https://lichttraeumer.de/datenschutz/" moz-do-not-send="true">https://lichttraeumer.de/datenschutz/</a></pre>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
nginx mailing list -- <a class="moz-txt-link-abbreviated" href="mailto:nginx@nginx.org">nginx@nginx.org</a>
To unsubscribe send an email to <a class="moz-txt-link-abbreviated" href="mailto:nginx-leave@nginx.org">nginx-leave@nginx.org</a>
</pre>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
Pflichtinformationen gemäß Artikel 13 DSGVO
Im Falle des Erstkontakts sind wir gemäß Art. 12, 13 DSGVO verpflichtet, Ihnen folgende datenschutzrechtliche Pflichtinformationen zur Verfügung zu stellen:
Wenn Sie uns per E-Mail kontaktieren, verarbeiten wir Ihre personenbezogenen Daten nur, soweit an der Verarbeitung ein berechtigtes Interesse besteht (Art. 6 Abs. 1 lit. f DSGVO), 
Sie in die Datenverarbeitung eingewilligt haben (Art. 6 Abs. 1 lit. a DSGVO), die Verarbeitung für die Anbahnung, Begründung, inhaltliche Ausgestaltung oder Änderung eines 
Rechtsverhältnisses zwischen Ihnen und uns erforderlich sind (Art. 6 Abs. 1 lit. b DSGVO) oder eine sonstige Rechtsnorm die Verarbeitung gestattet. 
Ihre personenbezogenen Daten verbleiben bei uns, bis Sie uns zur Löschung auffordern, Ihre Einwilligung zur Speicherung widerrufen oder der Zweck für die Datenspeicherung entfällt 
(z. B. nach abgeschlossener Bearbeitung Ihres Anliegens). Zwingende gesetzliche Bestimmungen – insbesondere steuer- und handelsrechtliche Aufbewahrungsfristen – bleiben unberührt. 
Sie haben jederzeit das Recht, unentgeltlich Auskunft über Herkunft, Empfänger und Zweck Ihrer gespeicherten personenbezogenen Daten zu erhalten. Ihnen steht außerdem ein Recht auf 
Widerspruch, auf Datenübertragbarkeit und ein Beschwerderecht bei der zuständigen Aufsichtsbehörde zu. Ferner können Sie die Berichtigung, die Löschung und unter bestimmten 
Umständen die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten verlangen. Details entnehmen Sie meiner
Datenschutzerklärung unter <a class="moz-txt-link-freetext" href="https://lichttraeumer.de/datenschutz/">https://lichttraeumer.de/datenschutz/</a></pre>
  </body>
</html>