2017-10-05 1 views
0

이것은 express.js로 반응 파일을 제공 한 것은 처음입니다. 빌드가 실행되고 서버가 수신 중이지만 html 파일에 구성 요소가 주입되지 않는 이유를 파악할 수 없습니다. 대신 html 템플릿 만 렌더링합니다.표현 파일로 반응 파일

const express = require('express'); 
const morgan = require('morgan'); 
const path = require('path'); 

const app = express(); 

app.use(morgan(':remote-addr - :remote-user [:date[clf]] ":method 
:url HTTP/:http-version" :status :res[content-length] :response-time 
ms')) 

app.use(express.static(path.resolve(__dirname, '..', 'build'))) 

app.get('*', (req, res) => { 
res.sendFile(path.resolve(__dirname,'..', 'build', 'index.html')) 
}); 

const PORT = process.env.PORT || 3000; 

app.listen(PORT,() => { 
console.log(`App listening on port ${PORT}!`); 
}); 

내가 콘솔에 표시되는 내용이 :

여기 build folder structure

내하는 index.js 내 서버 폴더에서 파일입니다 : 여기

내 빌드 폴더의 사진입니다

served page console

도움이 크게 주시면 감사하겠습니다.

+0

스크립트 태그 src가 잘못되었습니다 같습니다. 'src = "/ js/main.33e13313.js"'이어야합니다. 어떻게 스크립트 src를 설정하고 있습니까? –

+0

답장을 보내 주셔서 감사합니다! 그것은 npm 빌드를 실행할 때 기본적으로 실행됩니다. 그것을 당신의 제안과 여전히 같은 이슈로 변경하려고 시도했습니다. – jschuss

답변

-2

index.html 파일

<script src="src="/js/main.33e13313.js""></script> 

main.33e13313.js에 다음 코드를 추가하여 다음과 같은 링크를

react-express-boilerplate

을 참조 파일 웹팩와 패키지 JS이다.

는 귀하의 package.json 파일은 다음과 같이 설정됩니다 :

"scripts": { 
    "clean": "rm -rf build public/bundle.js", 
    "build": "babel server --out-dir build && webpack", 
    "start": "NODE_ENV=production supervisor ./build/main.js", 
    "development": "NODE_ENV=development node ./build/main.js" 
    }, 

당신은 실행 NPM 실행 빌드를 사용합니다.

바벨을 사용하여 es6을 es5로 변경할 수 있습니다. 이 빌드 도구입니다.

webpack을 사용하여 JavaScript 파일을 패키징 할 수 있습니다. packagig는 JavaScript 파일을 하나의 파일로 묶습니다. 이 포장 도구입니다.

+0

이 링크가 질문에 대답 할 수 있지만 여기에 답의 핵심 부분을 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. - [리뷰에서] (리뷰/저품절 포스트/17543662) – Lucius

+0

조언 해 주셔서 감사합니다! 정말 감사합니다 – jschuss