Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 网页包,正在以错误路径加载新块_Javascript_Webpack - Fatal编程技术网

Javascript 网页包,正在以错误路径加载新块

Javascript 网页包,正在以错误路径加载新块,javascript,webpack,Javascript,Webpack,我正在尝试对我的应用程序进行分块-尝试遵循webpacks指南中的操作方法()。因此,我为我的应用程序设置了一个单独的块,我可以看到webpack正在生成我的build文件夹中的1.bundle.js,但是它正在以错误路径粘贴到我的index.html,并且在我的控制台中,我看到1.bundle.js文件的获取错误 所以我的webpack配置看起来是这样的(我现在只使用webpack:dev): 在我的index.html中,我手动添加了,效果非常好。这看起来像是现在构建时,webpack正在我

我正在尝试对我的应用程序进行分块-尝试遵循webpacks指南中的操作方法()。因此,我为我的应用程序设置了一个单独的块,我可以看到webpack正在生成我的build文件夹中的
1.bundle.js
,但是它正在以错误路径粘贴到我的
index.html
,并且在我的控制台中,我看到
1.bundle.js
文件的获取错误

所以我的webpack配置看起来是这样的(我现在只使用webpack:dev):

在我的index.html中,我手动添加了
,效果非常好。这看起来像是现在构建时,webpack正在我的索引上应用它自己的脚本标记,就像这样

  <script type="text/javascript" charset="utf-8" async="" src="/dist/client/1.bundle.js"></script>


但是此路径不正确,它应该是
src=“1.bundle.js”
。我尝试过调整路径和公共路径,但似乎没有任何效果。有没有办法让webpack添加正确的路径?谢谢

这是因为您引用了
publicPath
。因此,它将尝试从此
publicPath
加载脚本,尽管该文件不存在


删除
publicPath
可以解决错误

您应该为此代码段更改
publicPath

publicPath: "/"

它将始终从根路径为您的块提供服务。

即使它已被回答和接受,我也将为其他有类似问题的人提供额外的有用信息

使用这两个参数有两个不同的目的

  • 输出:路径:条目部分中提到的捆绑文件保存到的目录。例如,您提到的“entry”条目的bundle.js。在这种情况下,它将保存在
    webconfig文件夹+“../../dist/client”
    文件夹中
  • 输出:publicPath:从浏览器访问模块时添加以引用模块的目录前缀。0.bundle.js是通过代码拆分创建的未命名块。它将被放置在上面提到的output:path中,但将使用公共路径在html中引用 因此,如果本例中的文件存储在
    /dist/client
    文件夹中,但index.htm在
    /dist/client
    中提供,则应将公共路径设置为
    /
    如果从
    /dist
    提供htm,则应将公共路径设置为
    /client/


    公共路径对于为异步加载创建的块非常有用,这些块可以从浏览器中动态调用

    我有三个配置文件:Prod、Dev和server。没有publicPath属性prod config或base config。我应该在
    output
    对象中添加一个吗?在编写库时,是否可以将其设置为
    dist
    目录的本地相对路径?e、 g.
    config.output.publicPath=“/dist/”?这会影响我图书馆的消费者吗?谢谢你的回答。我不能让它正常工作。如果我设置了
    publicPath
    ,那么
    0.bundle.js
    会正确加载,但是CSS中引用的图像和字体不会。如果我没有设置它,那么CSS中的图像会加载,但异步js包不会加载。
    publicPath: "/"