【问题标题】:Java/Play - Proper way to link to CSS/JS?Java/Play - 链接到 CSS/JS 的正确方法?
【发布时间】:2013-04-23 17:23:13
【问题描述】:

我正在创建一个 Play! 2.1.1 应用程序,我使用 Play2War 打包成一个 war 文件。这需要我在 application.conf 文件中添加一个上下文 application.context=/theApp/

我将 WAR 文件部署到了一个 tomcat7 服务器,这导致了 url localhost:8080/theApp/。

当 url 为 http://localhost:8080/theApp/thisseemstowork 时加载 CSS/JS 文件,但一旦 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)

有人知道我做错了什么吗?如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: java css tomcat playframework href


    【解决方案1】:

    您需要使用 Assets 控制器和反向路由。

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

    无论您在应用程序的哪个位置,这都会生成正确的路径。从您发布的路由文件 sn-p 中可以看出,路径是相对于 /public 文件夹的,因此这适用于您放入其中的任何样式表、图像等。

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

    这是 Play 的文档:

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

    【讨论】:

      猜你喜欢
      • 2019-12-20
      • 2018-07-16
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多