Angular2 относительные пути для templateUrl и styleUrls?

Во время поиска я нашел что-то под названием moduleId, чтобы установить относительные пути к шаблонам и файлам CSS, но я не знаю точно, как использовать moduleId в наших компонентах angular2?

На самом деле проблема заключается в моей структуре папок. Я загружаю все .js файлы из папки dist, тогда как мои файлы вида (.html) находятся в папке src. Поэтому, когда я использую moduleId: module.id, как этот angular взял путь из папки dist вместо папки src.

Итак, кто-нибудь здесь помогает мне сказать, что Как установить собственный moduleId для моего компонента angualr2?

Моя структура папок как это.

                                  App
                                  /\
                                 /  \
             (.js + .map files)Dist    Src(.ts + .html + .css files)
  • Папка Dist содержит все файлы .map и .js.
  • Папка src содержит все файлы .ts,.HTML и .css.

Фактическое кодирование (работа) -

@Component({
    selector: 'class-timing',
    templateUrl: 'src/components/TimeTable/class-timing/class-timing.html',
    styleUrls: ['src/app.css']
})

Модифицированное кодирование (Не работает из-за неправильного пути) -

@Component({
    selector: 'class-timing',
    templateUrl: 'class-timing.html',
    moduleId: module.id,
    styleUrls: ['src/app.css']
})

Ссылаясь на этот учебник http://schwarty.com/2015/12/22/angular2-relative-paths-for-templateurl-and-styleurls/

Ответ 1

Устранила мою проблему, изменив путь (от src до dist) импорта файла во время выполнения следующим образом: -

moduleId: module.id.replace("/dist/", "/src/")

Таким образом вы можете изменить каталог путей идентификатора модуля.

благодаря @Nicolai для этого удивительного комментария

PS: - Проводка в качестве ответа может помочь кому-то

Ответ 2

У меня также были некоторые вопросы о том, что сработало и не работает для путей TemplateUrl. Я обнаружил, что в моем тестировании было верно следующее:

templateUrl: имя папки/имя файла не работает

templateUrl: '/имя папки/имя файла' не работает

templateUrl: './имя_папки/имя файла' DID work

чтобы вы могли попробовать.