2016-05-31 41 views
11

Bir tepki uygulaması yapıyorum ve şu anda webpack-dev-server sadece iyi çalışıyor (Merhaba dünya metin çıkageliyor), Ancak webpack -p boş sayfa gösterir. Üretim yapısı için chrome dev araçları'nın altındaki ağ sekmesi index.html ve index_bundle.js boyutlarını 0 B (resme bakın) enter image description here olarak gösterir. Fakat Bu durum açıkça değil. HTML dosya boyutu 227 B'dir & index_bundle.js dosya boyutu 195Kb'dir (resme bakın) React Webpack üretimi neden boş sayfa gösteriyor?

Ayrıca Krom Devtools Elemanları Tab enter image description here

Benim webpack yapılandırma dosyası aşağıdaki gibidir (resme bakın) aşağıdakiler gösterilmektedir: enter image description here bir loca kurma olmadan ben browserHistory kullanıyordum bunu anladım

+1

webpack gibi görünmek? json yapılandırmayı dizginlemek. – ctrlplusb

+0

webpack yapılandırması ekran görüntüsünü ekledi – jasan

+0

Geliştirme/üretim yapılandırması arasındaki farka bakarsanız, yalnızca geliştirme yapılandırmasının 'devServer' düğümü içerdiğini görürsünüz. Üretime dayalı hosting yapmak istediğinizi belirten ve ardından devServer düğümünü buna göre enjekte eden ek bir çevre argümanı eklemeyi düşünmeniz gerekebilir. – ctrlplusb

cevap

15

l sunucu. Eğer bunu hashHistory olarak değiştirdim, işe yaradı. Webpack üretimini yerel olarak tepkisel yönlendirici tarayıcı geçmişi ile sınamak için bunu yapmam gerekiyor: Sunucu Yapılandır:

Sunucunuz gerçek URL'leri işlemeye hazır olmalıdır. Uygulama ilk olarak yüklendiğinde/büyük olasılıkla işe yarayacaktır, ancak kullanıcı etrafta gezinirken ve/account/23'te yenilendiğinde web sunucunuz/account/23'e bir istek alır. Bu URL’yi işlemek ve yanıtınıza JavaScript uygulamanızı eklemeniz gerekir.

ekspres uygulaması şöyle olabilir:

const express = require('express') 
const path = require('path') 
const port = process.env.PORT || 8080 
const app = express() 

// serve static assets normally 
app.use(express.static(__dirname + '/public')) 

// handle every other route with index.html, which will contain 
// a script tag to your application's JavaScript file(s). 
app.get('*', function (request, response){ 
    response.sendFile(path.resolve(__dirname, 'public', 'index.html')) 
}) 

app.listen(port) 
console.log("server started on port " + port) 

Ve her ihtimale karşı herkes tepki-yönlendirici tarayıcı geçmişi ile kullanarak Firebase dağıtma yapmak bu: Üretim yapılandırma ne yapar

{ 
    "firebase": "<YOUR-FIREBASE-APP>", 
    "public": "<YOUR-PUBLIC-DIRECTORY>", 
    "ignore": [ 
    "firebase.json", 
    "**/.*", 
    "**/node_modules/**" 
    ], 
    "rewrites": [ 
    { 
     "source": "**", 
     "destination": "/index.html" 
    } 
    ] 
} 
+0

ama bir sorun var - benim index.html yük css dosyaları, bundle.js - ve sunucu "*" yolu ile yüklemek için çalışır ve sonucu - tarayıcıda hiçbir şey ortaya koymadı.Bunu nasıl giderebilirim? Teşekkürler! – kurumkan

+0

Öyleyse bu örnekte hash geçmişini veya tarayıcı geçmişini şimdiden kullanabilirsiniz.Aynı sorunla karşılaşıyorum –

+0

@PeakSornpaisarn bu örnekte i'm tarayıcı geçmişi kullanarak – jasan