2015-01-24 20 views
27

Gdzie umieszczam pliki podczas próby wyświetlania plików statycznych w środowisku Spark?Gdzie umieścić pliki statyczne dla Spark Web Framework?

Nie udało mi się znaleźć niczego w Internecie - zaczynam podejrzewać, że nie rozumiem nic o ścieżkach klas, ścieżkach względnych itp. Dla projektu Eclipse i Java.

This paragraph o statycznych plikach w Spark odnosi się do /public, ale nie mam pojęcia, gdzie to by było. Korzystając z Windows, Eclipse Luna i mój projekt są konwertowane na Mavena.

Próbowałem sprawdzić kod na GitHub, ale jestem trochę poza moim zasięgiem, próbując go znaleźć.

Odpowiedz

44

Najpierw trzeba powiedzieć Spark gdzie szukać plików statycznych tak:

Spark.staticFiles.location("/public"); 

W wersji Spark przed 2.5, należy użyć:

Spark.staticFileLocation("/public"); 

Następnie projekt powinien mieć public folderu pod zasobów folderu jak ten

/src/main/resources/public/style.css

Na przykład dodałem style.css plik tam, więc należy następnie uzyskać dostęp to tak:

http://localhost:4567/style.css


Jeśli chcesz służyć folder zakaz ścieżce klasy, należy użyć

Spark.staticFiles.externalLocation("/path/to/dir"); 

W wersjach przed Spark 2.5, należy użyć:

Spark.externalStaticFileLocation("/path/to/dir"); 
+0

@JigarJoshi czym polega mówisz? Czy moje rozwiązanie nie działa? –

+0

Wpadłem szybko w decyzję, próbowałem ustawić odpowiedni typ MIME dla statycznych zasobów, które obsługuję, w końcu użyłem filtru, aby ustawić odpowiedni typ MIME dla pewnych statycznych zasobów –

+0

@JigarJoshi dobrze jeśli serwujesz pliki statyczne używając 'staticFileLocation' to nie musisz tego robić. Jeśli serwujesz pliki ręcznie rejestrując otrzymanie za pomocą 'Spark.get', to tak, będziesz musiał ustawić nagłówki ręcznie. –

3

kładę moje arkusze stylów poniżej mojej zawartości statycznej następująco:

staticFileLocation("/web"); 
/web/ 
    |-- index.html 
    +-- styles/ 
     + 
     +--- default.css 

a index.html

... <link href="styles/default.css" rel="stylesheet" type="text/css" /> 

Mam też inne generowanych stron HTML jak z freemarker. Oni po prostu zebrać ścieżkę:

  • /styles/default.css lub
  • localhost: 8081/style/default.css

Pokazuje indeks CSS sposób dostaje go.

Źródło: https://groups.google.com/d/msg/sparkjava/5vMuK_5GEBU/vh_jHra75u0J

1
  1. kliknij prawym przyciskiem myszy swój projekt na Eclipse, wybierz Utwórz nowe -> Pakiet. Nazwij nowy pakiet, itp.

  2. Umieść swoje zasoby statyczne w tym pakiecie, abyśmy mogli być pewni, że są pod twoją ścieżką klas.

  3. W swojej klasie zimnej klasy głównej wywołaj staticFileLocation ("nazwa twojego pakietu /");
0
  1. Umieść katalog publiczny w src/main/resources
  2. Wymień Spark.staticFileLocation("/public"); do Spark.staticFileLocation("public");