2013-04-29 1 views
1

Я создаю игру! 2.1.1, которое я упаковал в военный файл с помощью Play2War. Это потребовало от меня добавить контекст, application.context=/theApp/, в файл application.conf.Java/Play - Правильный способ ссылки на CSS/JS?

Я развернул файл WAR на сервере tomcat7, в результате чего был указан URL-адрес url: 8080/theApp /.

Файлы CSS/JS загружаются, когда URL-адрес, например, http://localhost:8080/theApp/thisseemstowork, но как только url равен http://localhost:8080/theApp/thisoughttowork/180, ни один из файлов CSS/JS не загружается. Я просто получить

GET http://localhost:8080/theApp/thisoughttowork/public/javascripts/vendor/bootstrap.min.js 404 (Not Found) 

Это, как я ссылку на файл JS в представлениях:

<script src="public/javascripts/vendor/bootstrap.min.js"></script> 

Это в мои маршруты файл

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

Кто-нибудь есть идея, что я» Неправильно? Дайте мне знать, если вам нужна дополнительная информация.

ответ

3

Вам необходимо использовать контроллер активов и обратную маршрутизацию.

<script src="@routes.Assets.at("javascripts/vendor/bootstrap.min.js")"></script> 

Это будет генерировать правильный путь независимо от того, где вы находитесь в приложении. Как вы можете видеть из фрагмента файла маршрутов, который вы опубликовали, путь относится к папке /public, поэтому это будет работать для любых таблиц стилей, изображений и т. Д., Которые вы там разместите.

<link rel="stylesheet" href="@Assets.at("stylesheets/bootstrap.min.css")"> 
<link rel="stylesheet" href="@Assets.at("other/folder/styles.css")"> 

Вот документация игра:

http://www.playframework.com/documentation/2.1.1/Assets

Смежные вопросы