Laravel / Vagrant и Gulp: файлы CSS и JavaScript, похоже, где-то кэшируются - PullRequest
0 голосов
/ 27 сентября 2018

Я недавно начал разрабатывать в Laravel, но быстро столкнулся с проблемой использования Gulp и Vagrant.Проблема в том, что когда я компилирую свой SCSS (SASS) в css, браузер, похоже, не обновляет файл css.Файл корректно синхронизируется в vagrant и не кэшируется NGINX.Я знаю это, потому что я отключил кэширование на стороне сервера и проверил папку synced-folder / var / www / my-project / public / css, чтобы увидеть, правильно ли скомпилирован файл.

Файл загружается только правильнокогда я перезагружаю окно vagrant, что странно, поскольку папка synced показывает правильно скомпилированный файл на сервере.Очистка кеша в браузере не помогает.Я понятия не имею, в чем проблема.Я использую Google Chrome.

Под блоком моего сервера и Gulpfile:

Серверный блок NGINX (обратите внимание, что это не усадьба Laravel):

location / {
    try_files $uri $uri/ /index.php;
    add_header Last-Modified $date_gmt;
    add_header Cache-Control 'no-store, no-cache, must-revalidate, $date, proxy-revalidate, max-age=0';
    if_modified_since off;
    expires off;
    etag off;
}

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    # With php7.0-fpm:
    fastcgi_pass unix:/run/php/php7.1-fpm.sock;
}

location ~ /\.ht {
    deny all;
}

Задача Gulp:

gulp.task("sass", function () {
    gulp.src(path.sass.src)
        .pipe(plumber({
            errorHandler: function (err) {
                console.log(err.message);
                this.emit("end");
            }
        }))
        .pipe(sass())
        .pipe(gulp.dest(path.sass.destination))
        .pipe(notify({
            message: "Sass compiled.",
            onLast: true
        }));
});

Надеюсь, кто-нибудь может мне помочь.

1 Ответ

0 голосов
/ 28 сентября 2018

Решение найдено!

Найдите место в ваших различных конфигурационных файлах nginx с надписью sendfile on и измените его на sendfile off.

Sendfileиспользуется для «копирования данных между одним дескриптором файла и другим» и, по-видимому, имеет некоторые реальные проблемы при запуске в среде виртуальной машины или, по крайней мере, при запуске через Virtualbox.Отключение этой конфигурации в nginx приводит к тому, что статический файл обслуживается другим способом, и ваши изменения будут отражены немедленно и без вопросов.

Источник: https://jeremyfelt.com/2013/01/08/clear-nginx-cache-in-vagrant/

...