Pergunta

Eu tenho o meu Play o aplicativo executando:

http://localhost:9000

Nginx é proxy de passar para esta url:

http://localhost/Demo/

Eu tenho um problema com a estática ativos embora.Por exemplo, esse ativo no modelo html

<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">

vai

http://localhost/assets/stylesheets/main.css

e, obviamente, resulta em não sendo encontrado.Se eu mudar para este (adicionar /Demo na frente da url):

<link rel="stylesheet" media="screen" href="/Demo@routes.Assets.at("stylesheets/main.css")">

será corretamente agora vá para esta url:

http://localhost/Demo/assets/stylesheets/main.css

A minha pergunta é:como posso adicionar este /Demo a todos os meus processos estáticos, sem disco rígido codding-lo em meus modelos?Eu prefiro resolver isso usando o Jogo de roteamento e limitar as alterações feitas ao nginx conf.

Eu tentei adicionar um prefixo de url para application.conf como este

application.context="/Demo"

mas que afetou todos os urls não só os estáticos, portanto, não uma solução.Quaisquer pensamentos?

Minha pilha:Jogar Quadro 2.2.1 / Scala 2.10.3 / Java 8 64bits / Nginx 1.4.3 / Ubuntu 13.10 64bit

ATUALIZAÇÃO:SOLUÇÃO Graças a @biesior para fornecer a versão do Java, eu converti para scala:

package core

import controllers.routes

object Assets {

    def at(path: String): String = {
        "/Demo" + routes.Assets.at(path)
    }

}
Foi útil?

Solução

Apenas substitua o caminho usando a própria implementação de ativos (ie.no utils package):

package utils;
import controllers.routes;

public class MyAssets {
    public static String at(String path){
        return "/Demo"+ routes.Assets.at(path).toString();
    }
}

nos modelos:

<img src='@utils.MyAssets.at("images/logo.png")' alt="">

Sobre o muito outro lado, será alvo do projeto também funcionam no subdiretório ?Se não é apenas mais fácil de usar subdomínios, é possível também com localhost, basta configurar o nginx para que o projeto usa o ie.: http://demo.loc em vez od http://localhost/Demo e adicionar este 'domínio' para o seu hosts arquivo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top