Nginx переписывает URL-адрес с URL-адресами для определенного скрипта без расширения .js до карта

Моя веб-страница динамически выполняет следующий запрос:

http://example.com/f1/script?param1=1¶m2=2&...¶mn=n

И я хочу, чтобы мой сервер nginx был посещен чтобы загрузить файл с именем script.js

Поэтому я сделал:

location ~^/f1/script?.* {
 rewrite ^/f1/script?.* /f1/script.js;
}

Но браузер не получает его.

Вы знаете, как заставить мой браузер успешно получать файл?

Редактировать 1

Я попытался сделать следующее:

location ~^/f1/ {
    try_files $uri $uri.js;
    rewrite ^(.*)$ $uri.js;
}

На основе https://stackoverflow.com/questions/8970674/remove-php-file-extension-with-nginx-php-fpm#17475222 , но на моем пути все еще нет света

-1
задан 7 September 2017 в 15:32
1 ответ

nginx не соответствует аргументам запроса в директивах location или rewrite .

Следовательно, вам необходимо использовать:

location /f1/script {
    try_files $uri $uri.js;
}

Могут быть проблемы с заголовком типа контента здесь, то есть браузер отказывается запускать скрипт, потому что его тип контента недействителен. В этом случае нужно найти способ добавить соответствующий заголовок типа контента.

Более простой подход - просто использовать script.js в URL.

0
ответ дан 5 December 2019 в 20:23

Теги

Похожие вопросы