簡體   English   中英

反應 Symfony 資產阻止加載混合活動內容

[英]React Symfony assets Blocked loading mixed active content

我一直在尋找這個問題的解決方案,但顯然我沒有找到一個,因為我發布了這個問題。 我知道我以前做過這個,所以我不明白我是如何做到的,但是我收到了以下消息,即阻止加載混合活動內容,但 React 文件與Symfony 文件位於

阻止加載混合活動內容屏幕截圖

我的 Symfony base.html.twig 文件:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>{% block title %}Welcome! Tarik{% endblock %}</title>
        {% block stylesheets %}{% endblock %}
    </head>
    <body>
        {% block body %}{% endblock %}
        {% block javascripts %}{% endblock %}
        {% include 'react-symfony-templates/index.html.twig' %}
    </body>
</html>

我的 index.html.twig 文件:

<script src="{{ asset('build/layout.js') }}"></script>
<script src="{{ asset('build/rep_log_react.js') }}"></script>

我剛剛開始項目,這就是我所擁有的一切,但是沒有加載 layout.js 和 rep_log_react.js 文件,那么 symfony 項目沒有要加載的反應文件。

我還嘗試將腳本標簽包圍在 index.html.twig 中:

{% block javascripts %}
    <script src="{{ asset('build/layout.js') }}"></script>
    <script src="{{ asset('build/rep_log_react.js') }}"></script>
{% endblock %}

還是同樣的錯誤。 再一次,我知道我以前做過這個,我確信我錯過了一些小東西,比如不要使用 symfony 服務或其他東西,但我需要一些新的眼光來看待這個。

像往常一樣,提前謝謝

我正在編輯我的答案,因為這不是一個永久的解決方案。 事實證明,如果我關閉 encore dev-server 和 symfony 服務器,那么所有鏈接都會返回到 http。 如何將其配置為指向https://localhost:8080/build

第二次編輯

這是解決方案 - 運行 encore dev-server 時使用以下標志

sudo yarn encore dev-server --port 8080 --https --hot

之后應該向您的瀏覽器添加安全豁免

基本上只需要以下命令行,但我遇到了一些我必須修復的錯誤。 首先,允許 encore 在 localhost:8080/build 上運行構建目錄的命令行

yarn encore dev-server --hot

當我運行上述命令時,我收到了 manifest.json is missing 的錯誤,這導致了一系列命令。 由於我在 Mac 上,我不得不在每個命令的開頭使用 sudo

sudo yarn add --dev @symfony/webpack-encore
sudo yarn add webpack-notifier --dev
sudo yarn encore dev

隨后更改以下文件以反映“https”而不是“http”/public/build/manifest.json - 我在更改以下文件之前關閉了兩個服務器。

我使用 vi 和以下命令來搜索和替換:

%s/http:/https:/g

{
"build/admin.js": "https://localhost:8080/build/admin.js",
"build/app.css": "https://localhost:8080/build/app.css",
"build/app.js": "https://localhost:8080/build/app.js",
"build/layout.js": "https://localhost:8080/build/layout.js",
"build/runtime.js": "https://localhost:8080/build/runtime.js",
"build/vendors~admin.js": "https://localhost:8080/build/vendors~admin.js",
"build/vendors~admin~app~layout.js": "https://localhost:8080/build/vendors~admin~app~layout.js",
"build/vendors~admin~layout.js": "https://localhost:8080/build/vendors~admin~layout.js",
"build/vendors~app.js": "https://localhost:8080/build/vendors~app.js",
"build/vendors~layout.js": "https://localhost:8080/build/vendors~layout.js"
}

/public/build/entrypoints.json

"entrypoints": {
  "layout": {
    "js": [
      "https://localhost:8080/build/runtime.js",
      "https://localhost:8080/build/vendors~admin~app~layout.js",
      "https://localhost:8080/build/vendors~admin~layout.js",
      "https://localhost:8080/build/vendors~layout.js",
      "https://localhost:8080/build/layout.js"
    ]
  },
  "app": {
    "js": [
      "https://localhost:8080/build/runtime.js",
      "https://localhost:8080/build/vendors~admin~app~layout.js",
      "https://localhost:8080/build/vendors~app.js",
      "https://localhost:8080/build/app.js"
    ],
    "css": [
      "https://localhost:8080/build/app.css"
    ]
  },
  "admin": {
    "js": [
      "https://localhost:8080/build/runtime.js",
      "https://localhost:8080/build/vendors~admin~app~layout.js",
      "https://localhost:8080/build/vendors~admin~layout.js",
      "https://localhost:8080/build/vendors~admin.js",
      "https://localhost:8080/build/admin.js"
    ]
  }
}
}

重啟兩台服務器

symfony server:start 

在一個單獨的終端 window

yarn encore dev-server --hot

證據就在布丁中 - 請參見以下屏幕截圖

暫無
暫無

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

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