Включая css в весенний проект с ваадином - PullRequest
0 голосов
/ 18 марта 2019

Попытка включить простой файл CSS в маршрут vaadin Использование весенней загрузки и проекта Maven. Когда я загружаю страницу на клиент, я получаю эту ошибку:

Refused to apply style from 
'http://localhost:8080/frontend/css/msas_login_page.css' because its MIME 
type ('text/html') is not a supported stylesheet MIME type, and strict MIME 
checking is enabled.

И когда я пытаюсь получить доступ к вышеупомянутому URL, я перенаправляюсь на эту страницу ошибки html

Could not navigate to 'css/msas_login_page.css'
Reason: Couldn't find route for 'css/msas_login_page.css'

Вот мой код:

package com.msas.MSAS.UIControllers;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.web.context.annotation.SessionScope;

import com.msas.MSAS.UIControllers.Authentication.MSASLoginForm;
import com.vaadin.flow.component.dependency.StyleSheet;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.AfterNavigationEvent;
import com.vaadin.flow.router.AfterNavigationObserver;
import com.vaadin.flow.router.Route;

@Route("loginPage")
@VaadinSessionScope
@StyleSheet("css/msas_login_page.css")
public class MSASLoginPage extends HorizontalLayout implements
        AfterNavigationObserver {

    private static final long serialVersionUID = 8673461297922218502L;

    private MSASLoginForm loginForm;
    private VerticalLayout container;

    public MSASLoginPage(@Autowired MessageSource messageSource) {
        super();

        this.initComponents(messageSource);
    }

    private void initComponents(MessageSource messageSource) {
        this.loginForm = new MSASLoginForm(messageSource);

        this.container = new VerticalLayout();
        this.container.setDefaultHorizontalComponentAlignment(Alignment.CENTER);
        this.container.add(this.loginForm);

        this.addClassName("login-page-container");
        this.setDefaultVerticalComponentAlignment(Alignment.CENTER);
        this.setHeightFull();
        this.add(this.container);
    }

    @Override
    public void afterNavigation(AfterNavigationEvent event) {
        boolean isError = event.getLocation().getQueryParameters()
                .getParameters().containsKey("error");
        this.loginForm.setError(isError);
    }
}

Вот моя структура проекта:

  • ЦСИ
    • основной
      • Java
        • ...
      • ресурсы
        • ...
      • 1073 * WebApp *
        • 1085 * интерфейс *
          • CSS
            • msas_login_page.css

Это содержимое файла css:

.login-page-container{
}

1 Ответ

0 голосов
/ 19 марта 2019

Исправлена ​​проблема.

Я использовал мультимодульный проект maven, и основной метод, содержащий приложение @SpringBootApplication и запускающий все приложение, находился не в том же модуле, где папка внешнего интерфейса vaadin.

Решением было перенести основной класс в тот же модуль maven, который использовался для vaadin.

...