Обычно, чтобы убедиться, что браузер получает новую версию, когда сайт обновляется с новой версией, например. в рамках нашего процесса сборки у нас будет что-то вроде этого:
/Resources/Combined.css?v=x.x.x.buildnumber
Так как это изменяется с каждым новым нажатием кода, клиент вынужден захватить новую версию только из-за запроса. Посмотрите на эту страницу (например, на момент ответа):
<link ... href="http://sstatic.net/stackoverflow/all.css?v=c298c7f8233d">
Я думаю, вместо номера редакции команда SO пошла с хэшем файла, что является еще более лучшим подходом, даже с новая версия, браузеры вынуждены захватывать новую версию, когда файл на самом деле изменяется.
Оба эти подхода позволяют вам установить заголовок кэша на что-то смехотворно долгое, скажем, на 20 лет ... но когда он изменится, вам не нужно беспокоиться об этом заголовке кэша, браузер видит различные запросы и обрабатывают его как новый, новый файл.
Рассматривая argcomplete и как это работает. Вы можете разместить его после parser.parse_known_args()
и до parser.parse_args()
, но это не принесет вам особой пользы, поскольку он запускает ваш скрипт и проверяет parser
, предоставленный для определения параметров автозаполнения. Он не передает аргументы (то есть то, что уже было напечатано в командной строке) скрипту.
Что при вызове argcomplete ваш скрипт не будет иметь представления о том, что было передано filename
и какие другие аргументы должны быть добавлены динамически.
Кроме того, если бы у вас были какие-либо required=True
аргументы, уже добавленные в анализатор до запуска parser.parse_known_args()
, вы действительно никогда бы не запустили argcomplete.autocomplete(parser)
, потому что выполнение скрипта было бы неудачным на первом до достижения последнего (опять же, для Сценарий автозаполнения запускается без каких-либо параметров, передаваемых ему).