Cloudflare, отображающий HTML-код вместо веб-страницы в Chrome - PullRequest
0 голосов
/ 03 января 2019

У меня есть приложение Angular 4, которое я развернул с помощью docker на машине aws ec2.Я использую CloudFlare для управления своим DNS.

Проблема в Chrome, когда я пытаюсь обновить страницу, вместо того, чтобы показывать мне веб-страницу, она возвращает мне HTML-код индекса. Если я получаю доступстраница напрямую через IPV4 с машины, приложение работает нормально.

В Firefox / Safari все работает как ожидалось.

Это мой index.html:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>PageName</title>
    <base href="/">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://fonts.googleapis.com/css?family=IBM+Plex+Serif|Roboto" rel="stylesheet">
    <link rel="icon" type="image/x-icon" href="assets/menu/favicon.png">
    <link rel="manifest" href="./manifest.json">

    <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js" charset="utf-8"></script>
</head>
    <body>
        <div id="global_root">
            <app-root></app-root>
        </div>
    <script type="text/javascript" src="inline.bundle.js">
</script><script type="text/javascript" src="polyfills.bundle.js"></script><script type="text/javascript" src="styles.bundle.js"></script><script type="text/javascript" src="vendor.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body>
</html>

Это заголовки ответа от IPV4:

Connection: keep-alive 
Date: Fri, 04 Jan 2019 14:25:56 GMT 
Server: nginx/1.15.7 
Transfer-Encoding: chunked
X-Powered-By: Express

Это заголовки ответа через cloudflare:

cf-ray: 493e5f00093f9706-FRA 
date: Fri, 04 Jan 2019 14:24:51 GMT 
expect-ct: max-age=604800, 
report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" 
server: cloudflare 
status: 200 
strict-transport-security: max-age=2592000; includeSubDomains 
x-content-type-options: nosniff 
x-powered-by: Express

1 Ответ

0 голосов
/ 04 января 2019

Похоже, вы не устанавливаете заголовок Content-Type, и Cloudflare услужливо добавляет X-Content-Type-Options: nosniff ко всем ответам, и Chrome применяет это к документам, в то время как Firefox и Safari не применяют его к документам (только к таблицам стилей). и сценарии).

Экспресс-наборы Content-Type: text/html; charset=UTF-8 по умолчанию, так что может быть что-то странное - как именно вы обслуживаете этот документ? Вы можете попробовать res.type("html"), чтобы быть явным.

...