Интеграция Angular 7 и ASP.NET MVC — Стили

Я пытаюсь вызвать приложение Angular 7 со страницы .cshtml Razor в ASP.NET MVC. Приложение загружается, но не применяет стили. У меня есть сборка приложения Angular в папке Bundles в корневом каталоге решений MVC. Мой BundlesConfig.cs выглядит так:

public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/Script/Bundles")
           .Include(
           "~/bundles/main.*",
           "~/bundles/polyfills.*",
           "~/bundles/scripts.*",
           //"~/bundles/styles.*",
           "~/bundles/vendor.*",
           "~/bundles/runtime.*"
           ));
        bundles.Add(new StyleBundle("~/Content/Styles")
            .Include("~/bundles/styles.*"));
    }`

Index.cshtml выглядит так:

@{
ViewBag.Title = "Index";
}

<my-component></my-component>

Наконец, мой _Layout.cshtml выглядит так:

<!DOCTYPE html>
<html>
<head>
    <meta charset = "utf-8" />
    <meta name = "viewport" content = "width=device-width, initial-scale=1.0">
    <title>Hello World - ASP.NET MVC</title>
    @Styles.Render("~/Content/Styles")
</head>
<body>
    <main role = "main" class = "container">
        @RenderBody()
    </main>
   @Scripts.Render("~/Script/Bundles")
</body>
</html>

Единственный файл стилей, попавший в мою папку Bundles, — это styles.js, и я не уверен, что это корень проблемы. Я попытался вручную переместить файл styles.scss в пакеты и сослаться на него в какой-то момент, но это тоже не удалось. Как видите, я закомментировал стили.* из комплекта скриптов, но пробовал и с раскомментированными. Это тоже не удалось. Спасибо за любую помощь, которую вы можете предоставить.

Соберите приложение angular из cli и посмотрите на полученный файл index.html, скопируйте ссылки, которые вы там видите. Обратите внимание, что результирующий файл может иметь другую структуру, если вы создадите его с производственным флагом.

Igor 30.01.2019 16:40

Добавление к @Igor порядка, в котором вы ссылаетесь на эти файлы, может определить, работает ли ваше приложение правильно/вообще.

Rinktacular 30.01.2019 16:47

Файлы в пакете Script совпадают с файлами в index.html, который также находится в папке Bundles.

Lee Ames 30.01.2019 16:47

Вы также можете открыть консоль разработки браузера и просмотреть ресурсы. Совпадают ли они между ожидаемым index.html и тем, что загружается из пакетов? Лично мне не нравится функция пакета в MVC, я решил добавить файлы angular непосредственно в index.cshtml (или любой другой файл, который является вашим корневым файлом .cshtml) и выяснить правильные имена файлов в помощнике Html при запуске.

Igor 30.01.2019 16:52

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

Lee Ames 30.01.2019 16:52

Могу ли я предложить игнорировать возможности связывания и просто использовать прямой тег <link ... />? сделать сборку нг. Вы можете скопировать ссылку из index.html, сгенерированного из сборки ng, и просто настроить пути. Затем: находится ли файл css в папке dist? если это не так или если есть styles.js, это означает, что вам нужно настроить сборку Angular. Если он есть, убедитесь, что он скопирован в вашу папку /Content/Styles.

A. Chiesa 30.01.2019 18:21

В конце концов я использовал тег <script> и сбросил пакет. Оказалось, что мне нужно переместить папку с ресурсами в корень решения, чтобы получить доступ к файлам .svg, которые искало приложение, поэтому оказалось, что некоторые из моих стилей отсутствовали, это были просто ресурсы! Спасибо, что помогли мне все обдумать.

Lee Ames 31.01.2019 21:39
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
8
650
0

Другие вопросы по теме