Проблема, с которой вы столкнулись, связана с тем, что браузеры имеют ограничения на загрузку ресурсных файлов из локальной файловой системы. Использование тега `<use>` для подключения SVG-спрайтов, находящихся в отдельных файлах, будет работать корректно только если вы используете локальный сервер.
Когда вы открываете HTML-файл напрямую через файловый проводник (с помощью `file://`), некоторые браузеры (включая Google Chrome) блокируют такие запросы из соображений безопасности. Поэтому в случае обращения к SVG-спрайтам по URL, используя `<use>`, они не загружаются, и вы не видите их на странице.
### Решения:
1. **Используйте локальный сервер:** Как вы уже заметили, использование локального сервера, например, BrowserSync, LiveServer или любой другой, решает проблему. Это наиболее рекомендуемый способ разработки и тестирования веб-страниц.
2. **Встраивание SVG непосредственно в HTML:** Если вам нужно тестировать без сервера, вы можете встроить SVG непосредственно в ваш HTML-документ. Например:
```html
<svg xmlns="http://www.w3.org/2000/svg" style="display:none;">
<symbol id="icon-sample" viewBox="0 0 32 32">
<!-- Ваши пути и другие параметры здесь -->
</symbol>
</svg>
<svg class="icon">
<use href="#icon-sample"></use>
</svg>
```
3. **Проверка путей:** Убедитесь, что путь в атрибуте `href` указывает на правильный SVG-файл и соответствует структуре вашего проекта. Если это относительный путь, попробуйте проверить его.
4. **Другие настройки CORS (для веб-сервера):** Если вы загружаете спрайты с другого сервера, убедитесь, что настройки CORS правильно настроены.
Для полноценной разработки веб-страниц рекомендуется использовать локальный сервер, поскольку это поможет избежать множества подобных проблем и лучше имитирует поведение сайта в производственной среде.