Spring boot i pobieranie PDF

Spring boot i pobieranie PDF
VA
  • Rejestracja:ponad 8 lat
  • Ostatnio:11 miesięcy
  • Postów:127
0

Witam,

Mam serwer w spring boocie i na nim tworze plik PDF w /static/asserts/cos.pdf. Za pomocą thymeleafa pobieram dany plik w HTMLu

Kopiuj
<a th:href="${pathToPdf}" target="_blank">Pobierz</a>

i wszystko ładnie się pobiera. Probem pojawia się gdy edytuje ten plik. W folderze ładnie nadpisuje. Natomiast po stronie html dalej pobiera staty plik. Pomaga jedynie restart serwera. Co może być przyczyną tego problemu? Z góry dzięki za pomoc.

IN
  • Rejestracja:około 9 lat
  • Ostatnio:około 5 lat
  • Postów:17
1

Może cachuje Ci statyczne pliki?
https://stackoverflow.com/questions/36525797/spring-web-developement-disable-caching-for-static-content

Ewentualnie zrób sobie kontroler który będzie Ci serwował ten plik do pobrania.
Czyli np. miałbyś urla w stylu "/download/{filename}" i wtedy w kontrolerze ladujesz zawartosc pliku i wysylasz do przeglądarki. Pocztytaj tutaj:
https://stackoverflow.com/questions/5673260/downloading-a-file-from-spring-controllers

VA
  • Rejestracja:ponad 8 lat
  • Ostatnio:11 miesięcy
  • Postów:127
0

Na razie rozwiązałem ten problem za pomocą resta, ale zobaczę to cachowanie i dam znać. Dzięki za wypowiedź.

edytowany 2x, ostatnio: vakil
VA
  • Rejestracja:ponad 8 lat
  • Ostatnio:11 miesięcy
  • Postów:127
0

Po wstawieniu do pliku application.properties linijki

Kopiuj
spring.resources.chain.cache=false
```
 nie ma żadnej różnicy.
JD
  • Rejestracja:około 19 lat
  • Ostatnio:około 6 godzin
0

A spróbuj
spring.thymeleaf.cache=false

VA
  • Rejestracja:ponad 8 lat
  • Ostatnio:11 miesięcy
  • Postów:127
0

Też nie działa. Powód najwidoczniej leży gdzieś indziej.

Kopiuj
spring.thymeleaf.cache=false
nie100sowny
  • Rejestracja:prawie 9 lat
  • Ostatnio:dzień
  • Lokalizacja:Kraków
  • Postów:402
0

@vakil:
Czy ja dobrze rozumiem? Chcesz nadpisać plik w /src/main/resources? Nie jest to możliwe.

Jeżeli jednak ten folder /static/asserts/cos.pdf znajduje się poza jar to pokaż kod. Może wczytany plik nie jest na nowo otwierany?


"Gdy się nie wie, co się robi, to się dzieją takie rzeczy, że się nie wie, co się dzieje"
edytowany 1x, ostatnio: nie100sowny
VA
  • Rejestracja:ponad 8 lat
  • Ostatnio:11 miesięcy
  • Postów:127
0

Witam,

Plik znajduje się w /src/main/resources/static/asserts/plik.pdf. Nadpisanie go jest możliwe za pomocą REST(poprawnie nadpisuje). Problem występuje, gdy chcę wyświetlić jego zawartość za pośrednictwem serwera np.

Kopiuj
localhost:8080/asserts/plik.pdf

<embed th:src="${pathToPdf}" width="500" height="375" type="application/pdf">
lub
<embed src="/asserts/plik.pdf" width="500" height="375" type="application/pdf">

pokazuje starą wersję z przed uruchomienia aplikacji. Tak jakby się nie odświeżało.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.