Play框架 - 设置资产的URL

时间:2013-12-01 04:17:46

标签: scala playframework playframework-2.0

在制作中,我想使用nginx来提供静态效果。如何在Play框架中设置我们可以在开发和生产中使用的资产的URL。我喜欢Django在设置中设置STATIC_URL的方式。

编辑:

在Django中,您可以在STATIC_URL = 'https://static.domain.com/'中设置settings.py。在模板中,您可以调用以下值:

<script src='{{ STATIC_URL }}js/jquery.js'></script>

1 个答案:

答案 0 :(得分:2)

你可以向application.conf添加你需要的任何东西,所以对于一个实例,它可以是静态域(当前应用程序的域除外),接下来就可以了。在控制器中编写简单的getter(Java版本):

<强> application.conf

staticUrl = "https://static.domain.com/"

controller Application.java

public class Application extends Controller {
    public static final String STATIC_URL = Play.application().configuration().getString("staticUrl", "http://localhost:9000");
    public static String getStaticUrl(String path){
        return STATIC_URL + path;
    }

    //other stuff
}

查看

<script src='@Application.getStaticUrl("js/your_script.js")'></script>
<!-- or just -->
<script src='@(Application.STATIC_URL)js/your_script.js'></script>

顺便说一句......

如果您只需要使用指向当前域的绝对网址,则可以使用Assets.at功能absoluteURL()直接在视图中执行此操作,即:

<script src='@routes.Assets.at("js/your_script.js").absoluteURL()'></script> 
<!-- or for https version -->
<script src='@routes.Assets.at("js/your_script.js").absoluteURL(true)'></script>