Я понял.
- Вы хотите построить с помощью --baseRef = / your / sub / directory / here /
- Вы хотите, чтобы ваш файл манифеста имел scope = "." и start_url = "./"
- Вам необходимо обновить файл ngsw-config. json.
- Это означает, что добавьте свойство navigationUrls, включите все, что angular предоставляет в стандартной форме, а затем добавьте правила в EXCLUDE specifici c urls.
- Angular предоставляет следующее в стандартной форме:
[
'/**',
'!/**/*.*',
'!/**/*__*',
'!/**/*__*/**',
]
В моем случае мне нужно было исключить URL-адреса, содержащие «Home». Но похоже, что я не могу использовать шаблон глобуса, который работает с компилятором angular. Итак, я написал шаг развертывания, который объединяет пользовательскую конфигурацию с конфигурацией, которая компилируется angular.
public static void Execute()
{
Log.Info("Configuring ngsw.json");
var ngsw = System.IO.File.ReadAllText($"{DeploySettings.SourcePath}wwwroot/dist/assets/ngsw.json");
var ngswJson = JObject.Parse(ngsw);
var toMerge = JObject.Parse(@"{
""navigationUrls"":[
{
""positive"": false,
""regex"": ""^.*Home.*$""
}
]}");
ngswJson.Merge(toMerge);
var json = ngswJson.ToString();
System.IO.File.WriteAllText($"{DeploySettings.SourcePath}wwwroot/dist/assets/ngsw.json", json);
}
На этом этапе мне просто нужно выяснить, как исключить мою целевую страницу, и все будет хорошо. Мое приложение наконец-то работает в офлайн-режиме!