Ситуация: есть сервер с веб-сайтом, к которому нет доступа на изменение.
Цель: внести и оттестировать локально изменения в один из статических JS-файлов испольуемых на сайте.
Что ожидается: нужно, чтобы у себя при открытии сайта в моем браузере один из запросов не шел к серверу, а читался у меня с локального диска.
Вопрос: как лучше всего настроить подмену запроса? Что из софта может максимально упростить эту задачу?
Нужно решение, работающее под Win.
PS: Вариант решения который я представляю: использовать прокси-сервер, который будет передавать все запросы кроме нужного на сервер с сайтом, а нужный — вычитывать с диска; прописать этот прокси-сервер в браузере. Проблема: не знаю готовых прокси-серверов с нужным функционалом. Писать свой не хочется. Хотя готов править заготовку сервера на Питоне :)
К моменту наступления onload оригинальные скрипты уже успеют выполниться и их уже не отменишь. Тем более что Greasemonkey почти ничего не гарантирует насчет момента выполнения пользовательского скрипта. В целом userscripts для решения моей проблемы не очень подходят.
Еще можно через Fiddler подобное организовать. Там смотрите на вкладку AutoResponder — в ней можно задать правило, чтобы вместо файла с сервера отдавался браузеру какой-то локальный файл.
Хотя Fiddler — по сути тоже как прокси.
Странно, почему я сам про него сразу не подумал. Видимо привык к тому, что стаится напосредственно перед сервером. Да, хорошо подходит для решения проблемы.
squid. Несколько лет назад настраивал на нем баннерорезалку таким образом, что он мне вместо рекламы выдавал картинку с моего http сервера. Т.е. как раз то, что Вам нужно. Некоторые запросы можно отправить не на оригинальный сайт, а на свой. Т.е., чтобы выполнить запрос, squid пойдет не на оригинальный сайт, а туда, куда скажете.
Настольный прокси Charles умеет подменять строки в HTTP ответах/запросах по регулярным выражениям, да и вообще много чего умеет, работает под Win/Lin/Mac. Это если в целях разработки/тестирования.
А если для постоянного использования — nginx ставится перед сайтом и его средствами подменяется нужный файл.
Вам для себя и один раз?
Открываете в Опере страницу, на которой находится нужный вам скрипт.
Открываете в другой вкладке нужный скрипт под тем же именем, что используется на странице.
Открываете исходный текст скрипта. Меняете то, что нужно нажимаете «применить изменения».
Переключаетесь на уже открытую вкладку с нужной страницей и перезагружаете из кеша (в средствах разработки).
Не подойдет. Так как исходный скрипт уже выполнится и наделает массу необратимых изменений. И в целом тестировать будет неудобно, так как во время отладки страницу придется открывать много раз.