通过Webpacker远程加载JS

问题描述 投票:0回答:0

我遇到了从我的 Rails/Webpacker 应用程序远程加载非常基本的 JS 脚本的问题。

这是我的 JS 脚本:

# app/javascript/some.js
console.log('loaded');

首先,我将我的包包含到我的 Rails 视图中,并且“已加载”字符串呈现在浏览器的控制台中。到目前为止一切都很好。

接下来,我希望能够远程加载这个脚本。所以我创建了一个这样的 HTML 文件:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title></title>

  <script type="text/javascript" src="http://localhost:3000/packs/js/some.js"></script>

</head>
<body>

</body>
</html>

绝对没有任何反应!

我确定它加载得很好,因为如果使例如。

src
中的错字 我在控制台中收到 404:“无法加载资源:服务器响应状态为 404(未找到)”

现在,当我检查我的清单时,我看到加载了三个资产:

# manifest.json

    "some": {
      "assets": {
        "js": [
          "/packs/js/runtime.js",
          "/packs/js/vendors-node_modules_webpack-dev-server_client_index_js_protocol_ws_3A_hostname_localhost_por-95065b.js",
          "/packs/js/some.js"
        ]
      }
    }

所以,当我将这些 JS 脚本包含在我的 HTML 中时,它起作用了:

# working example

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title></title>

  <script type="text/javascript" src="http://localhost:3000/packs/js/runtime.js"></script>
  <script type="text/javascript" src="http://localhost:3000/packs/js/vendors-node_modules_webpack-dev-server_client_index_js_protocol_ws_3A_hostname_localhost_por-95065b.js"></script>
  <script type="text/javascript" src="http://localhost:3000/packs/js/some.js"></script>

</head>
<body>

</body>
</html>

但问题是:我不想在我的 HTML 中包含三次 JS(出于多种原因)。

所以,我的问题是:我该怎么做才能让我的

'app/javascript/some.js'
文件远程加载,而我只需要包含一个JS文件。

javascript ruby-on-rails webpack webpacker
© www.soinside.com 2019 - 2024. All rights reserved.