Ресурс 404 не найден для статических ресурсов в приложении Play

#scala #playframework

#scala #playframework

Вопрос:

У меня есть эта конфигурация на моих маршрутах:

GET /assets/*file controllers.Assets.at(path="/public", file)

У меня есть какой-то файл в общей папке public/stylesheets/home.css

когда я пытаюсь получить этот файл, он возвращает

curl localhost:9663/assets/stylesheets/home.css

404 Resource not found

Я обнаружил, что проблема заключается в этой строке в build.sbt

 resourceDirectory in Assets := (sourceDirectory in Compile).value / "assets"
  

Ответ №1:

Я только что проверил свое приложение Play 2.7, и оно работает.

Единственное различие, которое у меня есть, заключается в route файле:

 GET     /assets/*file               controllers.Assets.versioned(path="/public", file: Asset)
  

Существует устаревшее предупреждение, но, по крайней мере, оно работает.

После того, как вопрос был обновлен:

resourceDirectory in Assets определяет, где Play ищет ресурсы.

По умолчанию воспроизведение просматривается в public папке. С помощью этой строки вы перезаписали его, app/assets поскольку sourceDirectory он находится app в игре.

Чтобы решить вашу проблему, просто удалите эту строку или переместите свои ресурсы.

Кстати, это конфигурация, которую использует Play:

 resourceDirectory in Assets := baseDirectory.value / "public"
  

Комментарии:

1. итак, теперь у вас есть решение путем удаления resourceDirectory in Assets := (sourceDirectory in Compile).value / "assets" ?

2. Я скорректировал свой ответ