2016-06-16 3 views
0

Согласно некоторым из ответов на вопрос, задаваемый, как заставить браузер перезагрузить JS на обновлениях,Как работает управление версиями файлов JavaScript?

Добавить? к ссылке src скрипта.

Например:

<script type="text/javascript" src="myfile.js?1500"></script> 

или

<script type="text/javascript" src="myfile.js?v1"></script> 

Я просто хочу знать, как это работает? Нужно ли мне делать какие-либо изменения в моем JS-файле, чтобы он совместился с новой версией? если нет, то как он перезагружает JS каждый раз со значениями, такими как src = "myfile.js? 1500"?

ответ

1

Это всего лишь трюк, вы передаете строку запроса, которая сообщает браузеру, что он должен перезагрузить ресурс с сервера.

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

Вам не нужно ничего менять на своей стороне сервера, так как строку запроса можно игнорировать.

+0

oh..so он не должен быть статичным, как? 1500, он не должен быть динамичным, как счетчик? Например. ? DateWithTimeSec – user2093576

+0

Я так думаю [здесь] (http://wordpress.stackexchange.com/questions/40667/how-do-you-avoid-caching-during-development) есть более подробный пост. –

+0

Я исправляю свой ответ, значение, которое вы ставите после того, как знак вопроса должен меняться каждый раз, когда вы меняете файл js. Поэтому, когда вы развертываете свой код в процессе производства, клиент будет загружать новую версию и не зацикливаться на проблемах кеша. Если вам нужно обрабатывать разные версии, то ответ, предоставленный @ medet-tleukabiluly, тоже хорош. –

0

Вам нужен сервер, который будет решать версию файла, вот простая реализация

directory structure

- index.js 
- node_modules/ 
- version0.js 
- version1.js 
- version2.js 

index.js

var express = require('express'); 
var app = express(); 

app.get('/myfile.js', function(req, res){ 
    var version = req.query.v || 0; 
    res.sendFile(__dirname + '/version' + version + '.js'); 
}); 

app.listen(3000, function(){ 
    console.log('listening 3000'); 
}); 

демо на https://glimmer-crow.hyperdev.space/myfile.js?v=1
изменения v запрос пары

Hypderdev источник https://hyperdev.com/#!/project/glimmer-crow

+0

Думаю, вы ответили на другой вопрос. В вашем примере вы имеете дело с различными версиями js-файла, который сосуществует и все они действительны, вам нужно только указать правильную версию необходимых функций. Но если вы разрабатываете, вы меняете один и тот же файл, и вам нужно, чтобы этот файл загружался с сервера каждый раз, когда вы его тестировали. –

+0

@MarioAlexandroSantini вы можете отключить кеширование в инструменте разработчика браузера, [screenshot] (http://i.imgur.com/NWLQNT1.png) –

+0

Да, но как, когда вы идете на производство? –

Смежные вопросы