2016-05-31 3 views
11

Я создаю приложение для реагирования, и на данный момент webpack-dev-server работает просто отлично (привет мир текст появляется), но webpack -p показывает пустую страницу. Для сборки производства Вкладка «Сеть» под инструментами chrome dev показывает index.html и index_bundle.js, чтобы иметь размер 0 B (см. Рисунок) enter image description here Но это явно не так. Размер файла HTML - 227 B & index_bundle.js размер файла - 195Kb (см. Рисунок) Почему сборка решений React Webpack показывает пустую страницу?

Также Chrome Devtools элементы Tab показывает следующее (см рисунок) enter image description here

Мой конфигурационный файл WebPack выглядит следующим образом: enter image description here

+1

Что делает ваш производственный конфигурации похож на webpack? json строит конфигурацию. – ctrlplusb

+0

добавил захват экрана конфигурации webpack – jasan

+0

Если вы посмотрите на разницу между конфигурацией разработки/производства, вы увидите, что только конфигурация разработки содержит узел 'devServer'. Возможно, вам придется рассмотреть вопрос о добавлении дополнительного аргумента среды, который указывает, что вы хотите сделать производственный хостинг, а затем соответствующим образом внедрить узел devServer. – ctrlplusb

ответ

15

я понял это, я использовал browserHistory без установки АПТ l сервер. Если я изменил его на hashHistory, он сработал. Чтобы тестировать производство веб-пакетов локально с помощью истории браузера с реактором-маршрутизатором, мне нужно было это сделать. Настроить сервер:

Ваш сервер должен быть готов к работе с реальными URL-адресами. Когда приложение сначала загружается с /, оно, вероятно, будет работать, но по мере того, как пользователь будет перемещаться, а затем будет обновляться в/accounts/23, ваш веб-сервер получит запрос/accounts/23. Он понадобится для обработки этого URL-адреса и включения вашего приложения JavaScript в ответ.

Экспресс приложение может выглядеть следующим образом:

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) 

И только в случае, если кто разворачивает к firebase используя реагировать-маршрутизатор с браузерной историей это сделать:

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

, но есть проблема - мои index.html загружают файлы css, bundle.js - и сервер пытается загрузить его по маршруту «*» - и как результат - в браузере ничего не отображается. Как я могу это исправить? Спасибо заранее! – kurumkan

+0

Итак, в этом примере вы используете историю хэша или историю браузера заранее. У меня такая же проблема –

+0

@PeakSornpaisarn в этом примере я используя историю браузера. – jasan

Смежные вопросы