• Кто создает .htaccess для сайта?

    @0x131315
    .htaccess - это часть сервера, сфера ответственности команды эксплуатации
    Обычно его создает/правит админ или бек-разработчик
    Работает этот файл только с веб-сервером apache/httpd, к nginx отношения не имеет
    Фронтенд-разработчики по идее никак с этим не связаны, это и близко не их сфера ответственности. Могут столкнуться, только если сами настраивают свое рабочее окружение и каким-то образом им помешал дефолтный .htaccess
    Управление кешем с серверной стороны точно не относится к фронтенд-разработке
    Ответ написан
    Комментировать
  • Как побороть CORS в Nginx?

    yarkov
    @yarkov Автор вопроса
    Помог ответ? Отметь решением.
    И как обычно лучше оф.документации нет ничего ))
    https://enable-cors.org/server_nginx.html
    Ответ написан
    Комментировать
  • Не могу запустить сборку через webpack. Что не так?

    @SiegfriedDelap
    Привет! Попробуй в файле package.json в строке "browserslist" оставить только ">1%". В моей ситуации помогло)
    Ответ написан
    2 комментария
  • Под какие разрешения делать адаптив?

    nastya97core
    @nastya97core
    Начинающий программист
    Лучше делать не адаптивный, а отзывчивый дизайн. Мне самой не нравятся эти формулировки и под адаптивным я всегда буду подразумевать отзывчивый, но, увы, многие считают это разными видами вёрстки.

    Отзывчивый, когда ты делаешь не под размеры, а просто под все экраны, постепенно уменьшая окно браузера и дописывая стили для тех блоков, которые слетели. В этом случае сайт у тебя будет отображаться на всех устройствах
    Ответ написан
    Комментировать
  • Как обработать строку с помощью awk, если у нее два разделителя!?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    awk поддерживает регулярные выражения, следовательно можно указать перечень символов.

    $ echo "uid=dog,dc=ph,dc=cc" | awk -F '[=,]' '{print $2"@"$4"."$6}'
    dog@ph.cc


    Только надо подумать что делать, если будет больше трех аргументов.
    Ответ написан
    3 комментария
  • Как спрятать scrollbar в div и отставить возможность скроллинга?

    standy
    @standy
    Если делать как посоветовали выше, то пострадают мобильные браузеры. У них скролл не занимает место, как на десктопах, поэтому текст будет уходить за правую границу.

    Есть еще одно решение:
    /* хром, сафари */
    .element::-webkit-scrollbar { width: 0; }
    
    /* ie 10+ */
    .element { -ms-overflow-style: none; }
    
    /* фф (свойство больше не работает, других способов тоже нет)*/
    .element { overflow: -moz-scrollbars-none; }

    Отсюда: hiding-vertical-scrollbars-with-pure-css-in-chrome...
    Ответ написан
    5 комментариев
  • Почему Не срабатывает в margin top через @media?

    Vlad_IT
    @Vlad_IT Куратор тега CSS
    Front-end разработчик
    Потому, что стоит переопределение
    @media only screen and (max-width: 767px)
    .single-featured-image-header img {
        margin-top: -22px;
    }

    строка 569 файл responsive.css

    Сделайте себе за правило. Если вы верстаете desktop-first (от большей версии к мобильной), то медиа запросы должны идти в порядке убывания, чтобы для маленького разрешения был больший приоритет. Ну или используйте диапазоны в медиазапросах.
    Ответ написан
    Комментировать
  • Как разделить код?

    @stratosmi
    Сейчас написано строк 200 кода, а в нем уже начинаешь путаться, так как функции в перемешку идут, а не по порядку исполнения, а по порядку их выставить не реально, так как некоторые функции не зависимы друг от друга.


    А и не надо по порядку.
    Сгруппировать по смыслу, по функционалу. И дать внятные название, скажем, все обработчики начинать с On.


    Я считаю, что аргументы и все переменные, должны быть с каким-то префиксом вначале, чтобы было проще понимать, откуда приходят данные.


    Достаточно везде одинаковые по смыслу аргументы именовать одинаково. Но только на одном уровне абстракции. Пытаться использовать сквозное наименование - категорически не нужно.
    Ну и локальные переменные можно выделять, например, префиксом l.

    Прослеживать всю цепочку откуда приходят данные категорически не нужно.
    Видеть в каком порядке исполняются функции категорические не нужно.


    Это типичная ошибка новичка - все пытаться удержать в голове.
    Для программиста нормой является "разделяй и властвуй" - абстрагирование на каждом уровне от предыдущего уровня.

    Важнейший (ну или один из самых важнейших) навыков программиста - декомпозиция.


    А вообще почитайте серию статью Дядюшки Бо "Чистая архитектура" и ее переложение под ваш язык программирования (есть несколько адаптаций статей под разные языки программирования).
    Ответ написан
    Комментировать
  • Валидация телефона по маске. Как?

    VladimirAndreev
    @VladimirAndreev
    php web dev
    Когда уже придумают галку "не хочу сообщать номер телефона"...
    Ответ написан
    Комментировать
  • Как узнать, когда иницелизируется функция?

    Promises есть в некоторых языках программирования. "Обещание" того, что страница загрузится. Нужна конструкция как в JavaScript Promise.all([ P1, P2 ]); – после выполнения обоих обещаний можно вызывать функцию.

    // псевдокод
    var docA, docB;
    Pa = asyncload("url-A"); // ф-я возвращает промис
    Pb = asyncload("url-B"); 
    Promise.all([ Pa, Pb ]).then( docA.b_is_ready() );
    // метод объекта docA  "b_is_ready" вызывает функцию в документе B
    Ответ написан
    3 комментария
  • Почему говорят что forEach меняет начальный массив, если он ничего не меняет?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Не меняется, т.к. а - это значение элемента массива. Но если бы это была ссылка на значение (на объект например), то менялось бы.
    arr = [{a: 1}, {a: 2}, {a: 3}]; 
    arr.forEach(a => {
      a.a++;
    })
    console.log(arr) // [{a: 2}, {a: 3}, {a: 4}]

    В таком случае да, значения объектов поменяются. Но если вы измените ссылку, то нифига
    arr = [{a: 1}, {a: 2}, {a: 3}];
    arr.forEach(a => {
      a = { a: a.a+1 };
    })
    console.log(arr) // Тут все по старому

    Также, можно поменять значение массива по ключу.
    arr = [1,2,3]
    arr.forEach((a, ind) => {
      arr[ind]++;
    })
    console.log(arr) // [2,3,4]
    Ответ написан
    Комментировать
  • Как запустить JS функцию которая находится в другом файле?

    rockon404
    @rockon404
    Frontend Developer
    Нельзя, так как функция, которую вы хотите вызвать, находится в области видимости анонимной функции колбека вызова $(document).ready(). Вам надо реорганизовать код.
    Ответ написан
    Комментировать