Доступ к CSS в компоненте angular извне

#angular #angular8 #angular9

#angular #angular8 #angular9

Вопрос:

Я работаю над приложением angular, в основном это приложение angular electron. В моем приложении есть компоненты, с помощью которых я получаю доступ к своим css-файлам следующим образом.

 @Component({
  selector: 'my-app',
  templateUrl: './my-app.html',
  styleUrls: ['./../../../styles/app.css'],
  encapsulation: ViewEncapsulation.None
})
 

Я пытаюсь отделить файлы css от своего проекта angular и хочу получить доступ к этим файлам css из внешнего местоположения. Я получаю одно местоположение в ProgramData в ngOnInit(), а затем добавляю /resources/assets/cssFiles/app.css. Как я могу использовать эту переменную в своем компоненте для динамического применения стилей в компоненте?

Ответ №1:

В angular.json поместите это местоположение в свой массив ресурсов.

Комментарии:

1. Я не хочу указывать жестко заданный путь. Я получу путь к файлу css из файлов настроек, и мне нужно использовать это местоположение. Это может быть разным каждый раз

2. Ознакомьтесь с этой статьей, похоже, вы просите vjtechworld.com/2019/09 /…

Ответ №2:

Вы можете ссылаться на внешние ресурсы, css, javascript и т.д., добавив их в свои проекты. angular.json Найдите соответствующий массив и добавьте туда путь к файлу — в этом случае я бы рекомендовал добавить в массив «стили».

Стили будут встроены в ваше приложение, когда вы ng serve или build .

 "architect": {
  "build": {
    "options": {
      ... bunch of stuff ...
      "styles": [
        "../path/to/css/file.css
      ]
    }
  }
}
 

Комментарии:

1. У меня есть разные файлы для каждого компонента. Как мой компонент узнает, что я должен использовать этот css-файл для этого конкретного компонента

2. Если вы хотите, чтобы стили были доступны только в области компонента, я бы рекомендовал вам скопировать стили в файл css компонента — это значительно упростит развертывание. Если вам действительно нужно ссылаться на этот css «извне» проекта, вам нужно использовать angular.json метод или запустить скрипт для динамической загрузки css перед сборкой. Реальная проблема здесь заключается в том, что если компонент начинает ссылаться на css извне корневого проекта, вам необходимо учитывать это при сборке для производства.