>source

Firebase의 클라우드 Firestore를 사용하는 flutter 앱이 있습니다. 웹 빌드를 완료하고 Android Studio를 통해 Chrome에서 실행하면 잘 작동합니다. 내 웹 앱 진행 상황을 클라이언트와 공유하고 싶지만 호스팅하고 싶지 않습니다 (아직 완료되지 않았기 때문에). 따라서 Android Studio에서 수행 할 수있는 것과 동일한 방식으로 로컬에서 실행하는 방법을 찾고 싶습니다. 그러나 Android Studio를 설치할 필요없이 (그리고 Flutter를 설치할 필요도 없습니다) 빌드 파일을 다음 주소로 보낼 수 있습니다. 내 클라이언트와 컴퓨터에서 실행할 수 있습니다 (웹 서버를 로컬로 시작하고 웹 앱을 실행하는 스크립트 사용).

웹 빌드 폴더 (index.html이있는 위치)에 포함 된 다음 스크립트를 시도했습니다.

from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
from httplib import HTTPResponse
from os import curdir,sep
#Create a index.html aside the code
#Run: python server.py
#After run, try http://localhost:8080/
class RequestHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        if self.path == '/':
            self.path  = '/index.html'
        try:
            sendReply = False
            if self.path.endswith(".html"):
                mimeType = 'text/html'
                sendReply = True
            if sendReply == True:
                f = open(curdir + sep + self.path)
                self.send_response(200)
                self.send_header('Content-type', mimeType)
                self.end_headers()
                self.wfile.write(f.read())
                f.close()
            return
        except IOError:
            self.send_error(404,'File not found!')
def run():
    print('http server is starting...')
    #by default http server port is 80
    server_address = ('127.0.0.1', 8080)
    httpd = HTTPServer(server_address, RequestHandler)
    try:
        print 'http server is running...'
        httpd.serve_forever()
    except KeyboardInterrupt:
        httpd.socket.close()
if __name__ == '__main__':
    run()

하지만 열 때 http://localhost:8000 Chrome에서 blanc 페이지가 표시되고 콘솔에 오류가 표시됩니다.

Failed to load resource: net::ERR_EMPTY_RESPONSE main.dart.js:1
Failed to load resource: net::ERR_EMPTY_RESPONSE manifest.json:1 
Failed to load resource: net::ERR_EMPTY_RESPONSE :8080/favicon.png:1

나는 또한 NPM을 시도했다로컬 웹 서버 달리다 ws --spa index.html 하지만 그냥 ERR_EMPTY_RESPONSE 응답.

이것은 내 안에있는 것입니다 build/web 달리기 후 flutter build web :

웹 앱을 로컬로 호스팅하고 인터넷에서 호스팅하지 않고 로컬에서 실행할 수있는 로컬 서버를 만들려면 어떻게해야합니까?

  • 답변 # 1

    여기 주석에서 언급했듯이 이동합니다.

    다음을 사용하여 app.js 파일을 만듭니다.

    const express = require('express')
    const app = express()
    const port = 8000
    
    app.get('/', (req, res) => {
        console.log('getting request')
        res.sendFile('website/y.html',{root:__dirname})
      })
    app.use(express.static(__dirname + '/website'))
    app.use((req, res)=>{
        res.redirect('/')
    })
    app.listen(port, () => {
        console.log(`app listening at http://localhost:${port}`)
      })
    
    

    여기에 내 웹 사이트 파일이 있습니다. website 폴더와 내 진입 점은 y.html . 정적 파일 디렉토리 (웹 사이트 페이지)를 설정 한 다음 루트 요청에 .html을 제공합니다.

    예제 프로젝트 : https://github.com/ondbyte/website

    마지막으로 실행하려면 터미널을 열고 루트 폴더로 이동하십시오. 그런 다음

    npm init
    npm install express --no-save
    node app.js
    
    

관련 자료

  • 이전 visual studio - 팩트 테이블 열을 기반으로 새 계산 된 측정 값 만들기
  • 다음 xamarin.ios - 컬렉션보기 레이아웃 문제