Какие размеры следует использовать для столбцов Nuxt Img — модуля и сетки начальной загрузки?

#twitter-bootstrap #nuxt.js #cloudinary

Вопрос:

Если вы используете сеточную систему Bootstrap для размещения своих страниц, и у вас есть шесть точек останова:

изображение

Пытаюсь ли я настроить размеры nuxt-img в соответствии с размерами столбцов для каждой точки останова? В моем случае я просто использую md столбцы, чтобы все было просто, вот так:

 <div class="container">
    <div class="row>
        <div class="col-md-8>
            <nuxt-img
            provider="cloudinary"
            :src="post.publicId"
            width="2450"
            height="3600"
            class="img-fluid card-img-top"    // <----- 'img-fluid' tells image to take width of its container
            sizes="XXXX" //<--- I am not sure what sizes to put here???
              />
        </div>
        <div class="col-md-4">
            ....etc....
        </div>
    </div>
</div>
 

Может ли кто-нибудь дать некоторые рекомендации о том, как я могу наилучшим образом адаптировать компонент Nuxt-img для столбцов сетки начальной загрузки? Спасибо!

Обновление: Вот тест в песочнице: https://codesandbox.io/s/billowing-butterfly-gi8j6?file=/layouts/default.vue

У меня есть следующие настройки, такие как:

               <nuxt-img
                provider="cloudinary"
                src="117_acy7d3"
                width="431"
                height="600"
                class="figure-img img-fluid card-img-top shadow"
                sizes="sm:576px md:768px lg:992px xl:1200px xxl:1400px"
              />
 

Проверьте вкладку сеть…вы увидите, что даже если вы запустите окно просмотра браузера шириной менее 400 пикселей, браузер все равно, похоже, загружает большую картинку размером 1200×1671:

введите описание изображения здесь

Ответ №1:

Обновить

Не уверен в дополнительных оптимизациях, но я добился того, чтобы это работало с этим

 <nuxt-img
  provider="static"
  src="/images/stairs.jpg"
  width="431"
  height="600"
  class="figure-img img-fluid card-img-top shadow"
  sizes="sm:100vw md:50vw lg:400px"
/>
 

Он правильно загружает изображения (в зависимости от их размера/веса), в зависимости от экрана и генерирует их во yarn generate время . Мое репо на github можно найти здесь: https://github.com/kissu/so-debug-nuxt-image


Это отчасти зависит от того, как выглядит ваша страница. Быстрее всего попробовать некоторые варианты 100vw в меньших разрешениях и некоторых абсолютных значениях 600px , как вы обычно делаете, когда делаете что-то отзывчивое.

Переключите свои инструменты разработки и посмотрите, как это отображается с помощью эмулированных значений, примерно так. введите описание изображения здесь


Эта документация также может стать хорошей отправной точкой: https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images#resolution_switching_different_sizes

Обратите внимание, что модуль сделает это за вас, это просто для понимания концепции.

Комментарии:

1. Мне придется подбросить репродукцию. Это просто не работает на меня.

2. Cloudinary делает это на лету, в то время как модуль делает это на AFAIK поколения. Следовательно, почему с Cloudinary все проще. Между тем, у модуля есть очевидные преимущества. Вы пробовали генерировать его локально? @красное смещение

3. Кроме того, пожалуйста, будьте более конкретны в отношении того, что не работает, пожалуйста. @красное смещение

4. Мне пришлось добавить размеры экрана точки останова начальной загрузки в nuxt.config.js файл, чтобы заставить размеры img работать должным образом. Я думаю, что в документах не было ясности по этому поводу.