AngularJS Grunt загружает JS-файл с динамическим параметром строки запроса

Я разрабатываю приложение с помощью yoman + grunt + angularJs.

Чтобы загружать файл JS только при необходимости, я добавил путь к файлу JS внутри calendar.html.

Для этого я изменил файл grunt.js и html.

Файл Grunt.JS

useminPrepare: {
        html: ['<%= yeoman.app %>/index.html', '<%= yeoman.app %>/views/*.html'],
        options: {
            dest: '<%= yeoman.dist %>',
            flow: {
                html: {
                    steps: {
                        js: ['concat', 'uglifyjs'],
                        css: ['cssmin']
                    },
                    post: {}
                }
            }
        }
    }

Измененный файл calendar.html

<!-- build:js({.tmp,app}) scripts/fullcalendar.js -->
  <script src="scripts/plugins/fullcalendar/fullcalendar.js"></script>
<!-- endbuild -->

Это решение работает правильно. Но теперь всякий раз, когда я загружаю страницу календаря, новый запрос отправляется на fullcalenar.js с динамическим параметром строки запроса, подобным этому

http://localhost/scripts/fullcalendar.a13f9b72f8.js?_=1422010995753

Это число (1422010995753) увеличивается каждый раз, когда я делаю запрос, который не позволяет браузерам кэшировать файл.

Я считаю, что это из-за assetsCacheBuster, но вот моя конфигурация Grunt. И я установил для него значение false вместе с debugInfo.

   compass: {
        options: {
            javascriptsDir: '<%= yeoman.app %>/scripts',
            fontsDir: '<%= yeoman.app %>/styles/fonts',
            importPath: './bower_components',
            relativeAssets: false,
            assetCacheBuster: false,
            raw: 'Sass::Script::Number.precision = 10\n'
        },
        server: {
            options: {
                debugInfo: false
            }
        }
    }

Моя проблема в том, что я хочу кэшировать файл fullcalendar.js и не хочу каждый раз получать новый файл JS.

Если я перемещаюсь выше кода calendar.html внутри файла index.html, приложение работает правильно и кэширует файл без объединения с остальными js. Но если я добавлю этот код в index.html, файл fullcalendar.js будет загружен с самой первой страницей.


person Dhiren    schedule 23.01.2015    source источник


Ответы (1)


Запоздалый ответ: grunt-cachebuster-querystring

person drakyoko    schedule 12.04.2016