Docker Express. js не обслуживает файлы stati c из-за перенаправления на HTTPS (также проблема с Fastify) - PullRequest
1 голос
/ 17 апреля 2020

А также воспроизводимо это репо https://github.com/patarapolw/docker0000

Я открываю http://localhost:8080 в Chrome Версия 80.0.3987.163 (Официальная сборка) (64-разрядная версия) / macOS 10.15 .3 MacAir 15 дюймов

Каждый раз перенаправляется на 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 security ...

1 Ответ

1 голос
/ 17 апреля 2020

Chrome кэшировал перенаправление на https, вам необходимо очистить его:

  • Go to: 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...