簡體   English   中英

Docker Express.js 不提供 static 文件,因為重定向到 HTTPS(也是 Fastify 的問題)

[英]Docker Express.js not serving static files due to redirect to HTTPS (also a problem with Fastify)

這個 repo https://github.com/patarapolw/docker0000

我在 Chrome 版本 80.0.3987.163(官方構建)(64 位)/macOS 10.15.3 MacAir 15 英寸中打開http://localhost:8080

它每次都被重定向到https://localhost:8080

├── package.json
├── public
│   └── index.html
├── server.js
├── .dockerignore
└── Dockerfile
// server.js

const app = require('express')()
app.use(require('express').static(
  require('path').join(__dirname, 'public')
))
app.listen(8080, () => {
  console.log('Go to http://localhost:8080')
})
# Dockerfile

FROM node:12-alpine
RUN mkdir /app
WORKDIR /app
COPY package.json .
RUN npm i
COPY . .
CMD ["node", "server.js"]
// package.json

  "scripts": {
    "start": "docker run -p 8080:8080 express-sample",
    "build": "docker build -t express-sample ."
  },

錯誤信息是

  • 此站點無法提供安全連接
  • localhost 發送了無效響應。
  • ERR_SSL_PROTOCOL_ERROR

必須是一些 Chrome 安全性...

Chrome 已經緩存了一個重定向到https ,你需要清除它:

  • Go 至: chrome://net-internals/#hsts > Delete domain security policies
  • 輸入您的域,然后單擊刪除。
  • 您可能還需要清除瀏覽器緩存:chrome://settings/clearBrowserData( Cached images and files

作為替代方案,您可以使用另一個未緩存的域進行開發,您可以通過編輯/etc/hosts文件並添加:

127.0.0.1 dev.foo

然后訪問http://dev.foo:8080

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM