Java/Spring/MVC nie mogę załadować zdjęcia w tle

0

Witajcie:)
Jestem początkująca jeśli chodzi o Springa więc proszę o wyrozumiałość. Mam problem przy tworzeniu aplikacji-mam napisana aplikację w Springu i cały backend mam juz zrobiony w Javie, teraz zabieram się za wygląd mojej apki i napotkałam problem.Robię właśnie layout i chciałam, umieścic na stronie zdjęcie w tle ale niestety cos jest nie tak. Domyslam się, że brakuje mi jakiegoś mapowanie dla obrazów z tego co czytałam w internecie ale za bardzo nie wiem jakie pliki konfiguracyjne dodać żeby działało.Zdjęcie mam umieszczone w folderze resources/images ale nie moge się do tego odniesc gdy wpisuje background-image:url("ścieżka do pliku").Czy ktoś byłby mi w stanie pomóc?

0

background-image:url("ścieżka do pliku") pokaż tą ścieżkę

0

@Shalom: background-image: url(" resources/static/images/image1.jpg");

0

Jeśli to jest jakiś default boot setup to resources/static "samo się mapuje" więc url("/images/image1.jpg");

0

@Shalom: Niestety dalej nie działa, podobnie jak próbuje wstawić sam obraz niekoniecznie w tle:(

0

Link do githuba w takim razie bo nie wiadomo co masz w tym projekcie. Może to nie Spring-Boot i musisz jednak sobie skonfigurować te statici? Mam zgadywać?

0

Jest podejrzenie że wina leży po stronie patha, więc najpierw proponuję żebyś dała najpierw patha bezwzlędnego - czyli zaczynającego się do C:/ jeśli jestes na windowsie. Jeśli wtedy zadziała, to trzeba popatrzeć jak zmienić ścieżkę. Jeśli nie zadziała, no to jakiś inny problem

0

Link do mojego gitluba z projektem https://gitlab.com/Martyna87/speedway-application.git
Generalnie problem jest taki, że mam tam plik common_part.html który chciałabym żeby był częścią wspólna dla mojej aplikacji(chce żeby każda strona miała taki sam nagłówek,menu i stopkę). W tym pliku w sekcji header mam załadowany obraz w tle który trzymam w folderze resources/static/images.I generalnie jak robię pogląd tej strony to wszystko wygląda tak jak chciałam łącznie ze zdjęciem w tle. Jednak gdy chce już wykorzystać tą część w jakieś części mojej aplikacji(na razie próbowałam to wpakować w login.htm poprzez thymeleafa

i odpalić tą stronkę poprzez aplikację(http://localhost:8080/login) to wszystko działa oprócz tego zdjęcia w tle:( Siedzę juz nad tym drugi dzień i nie wiem w czym jest problem:(</p>
0

Zacytuje samego siebie:

Jeśli to jest jakiś default boot setup to resources/static "samo się mapuje" więc url("/images/image1.jpg");

Której części tego zdania nie zrozumiałaś? Plus nie masz whitelistowanej ścieżki /images w security config.
Nie zastanowiło cię że do styles.css odnosisz się bez żadnego static/resources/? Spring Boot automatycznie mapuje katalogi pod resources/static pod /

Nie bardzo rozumiem co ty tam wyczyniasz z tym common_part, bo tobie potrzeba jakiegoś include na poziomie silnika szablonów i tyle.

Reszta apki dość dramatyczna. Część rzeczy byłaby łatwiejsza jakbyś miała rok 2021 a nie 2011 i używała nowych wersji (taki swagger w Spring Boocie teraz jest "od kopa" po dodaniu jednej zależności do projektu).

0

Miałem napisać w komentarzu coś w stylu: '@mamaGodzilki: jeśli dopiero zaczynasz to nie jest za późno na wywalenie tego thymeleafa z projektu.'

Ale jak zajrzałem na szybko do projektu, to nie mogłem się opanować.

  1. Wywał Thymeleaf'a
  2. Poczytaj po co jest @Autowired i dlaczego się tak nie robi: https://gitlab.com/Martyna87/speedway-application/-/blob/master/speedway-application/src/main/java/com/example/speedway/application/service/PlayerService.java#L23 (podpowiem, wstrzykiwanie przez konstruktor)
  3. Na początku tego serwisu używasz streamów, więc jakąś styczność z nimi miałaś (chyba, że poleciało ctrl-c ctrl-v) https://gitlab.com/Martyna87/speedway-application/-/blob/master/speedway-application/src/main/java/com/example/speedway/application/service/PlayerService.java#L94 Ta metoda aż się prosi o zrobienie tego na streamach i za pomocą map()( flatmap()). Dodatkowo przyswój sobie Optionale.

Zanim zaczniesz się bawić w pisanie frontu, najpierw popraw swój backend. Testować to możesz chociażby PostManem. Nie ma potrzeby bawić się Thymeleafem.

0

@kixe52: Bardzo Ci dziękuję za konstruktywne uwagi:) Czemu tak właściwie thymeleaf jest taki zły? Sorki za pytanie,ale dopiero zaczynam swoją przygodę, a w końcu kto pyta nie błądzi:)

1

Nie rób takiej drabinki if'ów (jak przyjdzie Twój czas to weźmiesz do ręki clean code wujka Boba i przeczytasz tam, że dobrą praktyką jest stosować jedynie max jedno zagnieżdżenie w kodzie):
screenshot-20210129211839.png
https://blog.codinghorror.com/flattening-arrow-code/

Adnotacji @Transactional nie potrzebujesz bo zapis do bazy zamykasz w jednej metodzie save.

1

@mamaGodzilki: Przede wszystkim dlatego, że nie używa się go komercyjnie na taką skalę żeby się opłacało Ci go uczyć. Jakby to było 5 lat temu, to może jeszcze jeszcze, ale na pewno nie dziś. Po drugie jak przejrzysz kilka stron w dziale Java, to napotkasz posty ludzi którzy mieli problemy z liściem. Zauważysz odpowiedzi, że są to problemy typu 'u podstaw', których by nie było jakby dana osoba zajęła się normalna frontową technologią. Liiść jest mocno specyficzny.

Tak jak odpowiedziałem na poprzedniej stronie innemu użytkowikowi:

Zamiast tego w pełni poprawnie napisane REST API, a dopiero potem niech umysł kieruje się ku frontowi. Jak już ogarniesz część backendową to od siebie polecę Angulara - do prostego wyświetlania/dodawania/usuwania danych wystarczy przerobić tutorial Heroes z oficjalnej dokumentacji. A TypeScript zapewni Ci, że poczujesz się prawie jak w javie ;) Inni zapewne polecą Reacta lub Vue. (te dwa są na jsie, Angular na typescripcie).

1 użytkowników online, w tym zalogowanych: 0, gości: 1