2011-03-15 14 views
5

Tabanımın değeri http://localhost:8080/whatever. Diğer makinelerde, http://localhost/whatever.Mezarlar, savaş üssünü akıllıca mı alıyor?

var

http://localhost:8080/a/b/${param1}/c/${param2}

ise: yani

Dinamik yol parametreli dinlenme URL'ler bazı bağlantılar oluşturmak çalışıyorum

<% 
    String baseUrl = "http://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() 
%> 

kullanmadan bu bilgileri almak için akıllı yolu var mı, Bunu yapmanın daha iyi bir yolu, bana haber ver.

cevap

6

Unutursanız, bu here numaralı soruda cevaplanmamıştır. Dağıtılmış makinenizin yapılandırma dosyasına grails.serverURL ve grails.app.context'u ayarlamanız yeterlidir. Daha sonra URL'yi yapmak için createLink kullanın. Yoksa bir şey mi özledim?

+0

Hiçbir şey kaçırmadın. Bu yolun bazı yapılandırmalarda var olması gerektiğini biliyordum. Bunu Config.groovy'de tamamen özledim –

0

<g:link> etiketi, geçerli ortamın serverUrl ve contextPath öğelerine saygı gösteren bir URL oluşturacak "mutlak = doğru" parametresini kabul eder. URL'nizi oluşturmak için bunu named URL mapping ile birleştirmenizi öneririz. Eğer sayfa oluşturma anda URL'nin tamamını oluşturmak için yapamıyorsanız

, Grails hala senin için URL parçasını oluşturabilir:

var url = '${g.createLink(absolute: true, mapping: "mymappingname")}/' + param1 + '/c/' + param2; 
console.log(url); // "http://localhost:8080/whatever/a/b/something/c/somethingelse" 

Ve UrlMappings.groovy içinde:

class UrlMappings { 

name mymappingname: "https://stackoverflow.com/a/b/$param1?/c/$param2?" { 
     controller = 'myRestHandler' 
    } 
} 
+0

bağlantılar javascript ile parametreli, bu nedenle bu yaklaşım işe yaramaz: Uygulamanızın taban URL için '/' kullanın. –

+0

Daha sonra URL'leri javascript URL'leriniz için temel olarak kullanabilirsiniz. – Blacktiger

+0

Bu hala çalışmayacak./c/aslında birden çok farklı dinamik eşlemedir ve "/" için temel Url, baseUrl 'ye ihtiyacım olan dosyaya eşlenir, böylece bu eşleştirmenin iyi olmaması gerekir. –

0

I CreateLink (aksiyon doğru: 'endeksi', kontrol ünitesi 'Kök', parametreleri: [kimlik: id], mutlak) çözebilir grails.serverURL gerektirmez Bu çözelti ayarlanacak

4

:

<g:createLink absolute='true' uri='/WHATEVER'/> veya

${g.createLink(absolute:true, uri:"/WHATEVER")}

oluşturur:

http://HOST:PORT/APPNAME/WHATEVER

Uygulamada kullanmak istediğiniz yere işaret etmek için URI'u ayarlayın.

http://HOST:PORT/APPNAME/

İlgili konular