Назад | Перейти на главную страницу

Недопустимое значение поля "ресурс": "". Неверный шаблон пути при добавлении правил пути

Я хочу добавить правила сопоставления пути к карте URL-адресов в вычислительном движке Google. Вот моя команда:

gcloud compute url-maps add-path-matcher myproject-url-map --default-service \
backend-service-wordpress  --path-matcher-name root --path-rules "/=backend-\
service-wordpress,/features/=backend-service-wordpress,/pricing/=backend-\
service-wordpress,/blog/=backend-service-wordpress,/\?*=backend-service-wordpress"

он выдает это сообщение об ошибке:

ERROR: (gcloud.compute.url-maps.add-path-matcher) There was a problem modifying the resource:
 - Invalid value for field 'resource': ''. Invalid path pattern

Не думаю, что я определил пустой ресурс в этой командной строке.

Я должен указать параметры --path-rules в паре кавычек, потому что в противном случае zsh будет жаловаться.

Это первое правило, которое я хочу определить. После этого я собираюсь добавить правило для сопоставления всех /* в другой серверный сервис, например:

gcloud compute url-maps add-path-matcher myproject-url-map --default-service \
    backend-service-app --path-matcher-name others --path-rules "/*=backend-service-app"

Что означает это сообщение об ошибке? Что не так с моей командой?

Я подозреваю, что это как-то связано с использованием как двойных кавычек, так и кавычек с обратной косой чертой для аргумента --path-rules. В частности, вам не нужна обратная косая черта для цитирования вопросительного знака. Обратите внимание на результат:

print -r -- "\?"

Точно так же символы новой строки внутри двойных кавычек не нуждаются в обратной косой черте, если у вас не установлена ​​опция csh_junkie_quotes.

Есть несколько способов, которыми zsh может помочь вам автоматически цитировать слова. Один из способов - попробовать привязать ключ к quote-region. Это будет цитировать регион (режим emacs) или визуальное выделение (режим vi).