2013-08-12 27 views
5

Bu yüzden araştırdım ve oyunun Production modunun assets ile uğraşırken Development modunda olduğundan farklı bir davranışı olduğunu öğrendim.Oynat! Çerçeve: Üretim Modunda erişilemeyen varlıklar

Kullanıcının bir görüntüyü yüklediği ve yüklemenin yüklendikten sonra hemen sayfada görüntülendiği bir sitem var. Geliştirme modunda, görüntü iyi görüntülenir. Ancak üretim modunda, görüntü bulunamadı. Üretim modunda kodun yazılan yeni dosyayı tanımıyor olduğunu anlıyorum.

Benzer bir sorunu olan bir kullanıcı bir çözüm yazdı, ancak Scala'da. Java'da yazıyorum ve bu kullanıcının ne yaptığını tam olarak bilmiyordum: Play! Framework: File not served after upload until play clean

Bu çözüm dosyayı bir dosya olarak sunuyormuş gibi görünüyor mu? Çünkü öyleyse ihtiyacım olan şey değil. Ben böyle html kullanarak sergiledikleri dosyaya erişmek istiyorum:

<img src='@routes.Assets.at("images/fileName")'></img> 

Ne Production modunda yeni yüklenen varlık dosyasına erişmek için ne yapabiliriz?

+2

olduğu yerlerde bu tartışma bakın

<img src='http://localhost:8080/images/fileName'></img> 

kullanmak yerine

<img src='@routes.Assets.at("images/fileName")'></img> 

arasında: https://groups.google.com/d/msg/play- framework/iHwp1FIjZbw/UaRq_3NTpLoJ –

+0

Bu bağlantı için teşekkür ederiz. Çok fazla araştırma yaptım ve buna rastlamadım. James Roper'ın cevabı, hemen hemen varlık denetleyicisinin sınırlamalarını özetliyor. – cYn

cevap

1

Bu nedenle, yeni eklenen dosyaları Sun'ın kodu derledikten sonra sunamayacağınızı öğrenmek, bir sonraki en iyi seçenek, önerdiği gibi bir ön uç HTTP sunucusunu kullanmaktır. Nginx kullanarak bitti. Dosyaları sunmak için sadece nginx kullanıyorum ve başka bir şey kullanmamdan dolayı, bunu işe almak için attığım adımları yayınlayacağım.

Mac kullanıyorum, böylece terminalde $ brew install wget numaralı telefonu arayarak Homebrew'ı kurdum. http://learnaholic.me/2012/10/10/installing-nginx-in-mac-os-x-mountain-lion/ Sonra

ben sadece

location/{ 
    root html; 
    index index.html index.htm; 
} 
den yapılandırma dosyasını değiştirin: basitçe ben nginx en yapılandırma dosyası değiştirme konusunda beni rehberlik edecek bu siteyi kullanılan $ brew install nginx

arayarak nginx yükleyebilirsiniz çünkü Homebrew iyidir

public Çal projesinde klasörü gösterir

location/{ 
     root /Users/myName/playProject/public; 
    } 

için. Bu şekilde yaptım, böylece kodumu yeniden düzenlemek zorunda kalmam. Yani şimdi port 8080 benim nginx sunucu

İlgili konular