<i id='6QiHn'><tr id='6QiHn'><dt id='6QiHn'><q id='6QiHn'><span id='6QiHn'><b id='6QiHn'><form id='6QiHn'><ins id='6QiHn'></ins><ul id='6QiHn'></ul><sub id='6QiHn'></sub></form><legend id='6QiHn'></legend><bdo id='6QiHn'><pre id='6QiHn'><center id='6QiHn'></center></pre></bdo></b><th id='6QiHn'></th></span></q></dt></tr></i><div id='6QiHn'><tfoot id='6QiHn'></tfoot><dl id='6QiHn'><fieldset id='6QiHn'></fieldset></dl></div>

<small id='6QiHn'></small><noframes id='6QiHn'>

  • <legend id='6QiHn'><style id='6QiHn'><dir id='6QiHn'><q id='6QiHn'></q></dir></style></legend>
    • <bdo id='6QiHn'></bdo><ul id='6QiHn'></ul>

      1. <tfoot id='6QiHn'></tfoot>
      2. Webpack中publicPath路径问题详解

        时间:2023-12-15
      3. <legend id='1Rowz'><style id='1Rowz'><dir id='1Rowz'><q id='1Rowz'></q></dir></style></legend>
          <tfoot id='1Rowz'></tfoot>

            <bdo id='1Rowz'></bdo><ul id='1Rowz'></ul>
                <tbody id='1Rowz'></tbody>

                • <i id='1Rowz'><tr id='1Rowz'><dt id='1Rowz'><q id='1Rowz'><span id='1Rowz'><b id='1Rowz'><form id='1Rowz'><ins id='1Rowz'></ins><ul id='1Rowz'></ul><sub id='1Rowz'></sub></form><legend id='1Rowz'></legend><bdo id='1Rowz'><pre id='1Rowz'><center id='1Rowz'></center></pre></bdo></b><th id='1Rowz'></th></span></q></dt></tr></i><div id='1Rowz'><tfoot id='1Rowz'></tfoot><dl id='1Rowz'><fieldset id='1Rowz'></fieldset></dl></div>
                • <small id='1Rowz'></small><noframes id='1Rowz'>

                  下面我会详细讲解“Webpack中publicPath路径问题详解”的完整攻略,并且提供两个示例进行说明。

                  什么是publicPath?

                  在webpack构建应用程序时,会将我们的项目中各个模块依赖打包成为块(chunk),最终输出到一个或多个 bundle 中。当我们在使用<script>标签引入这些输出的静态资源时,会发现引用的路径不正确,这个时候我们就需要设置publicPathpublicPath参数就是webpack构建时输出的项目中的资源,引入时会添加在资源前面的一个路径。

                  我们可以在webpack.config.js中设置publicPath值,来修正资源引用路径问题。

                  module.exports = {
                    //...
                    output: {
                      publicPath: '/dist/'
                    }
                  };
                  

                  上述代码就设置了所有资源的请求路径都会加上/dist/,比如请求out.js路径就会变成/dist/out.js。另外,webpack还支持以下的publicPath设置:

                  • 空字符串(''):在引用生成的服务是使用相对路径(相对于所在文件的路径)进行引用。
                  • 相对路径('./''../'):在引用文件的路径前加上给定的相对路径。
                  • 绝对路径('/root/path/'):在引用文件的路径前加上给定的绝对路径。

                  示例一

                  接下来,我们将通过一个示例来更加深入的理解publicPath。我们假设我们正在为一个单页面应用程序构建一个Web应用,我们配置webpack如下:

                  module.exports = {
                    entry: './src/index.js',
                    output: {
                      path: './dist',
                      filename: '[name].js',
                      publicPath: '/dist/'
                    }
                  }
                  

                  这里我们定义了入口文件为./src/index.js,生成的文件会输出到./dist目录下,publicPath/dist/。在我们引入页面的资源的时候,会自动将publicPath加入到路径中,比如:

                  <script src="/dist/index.js"></script>
                  

                  这样引用index.js文件就会自动加上publicPath设置的路径。

                  示例二

                  我们再看一个稍微复杂一点的示例。我们有一个由HTML, LESS, JavaScript等文件组成的项目,我们需要结合webpack对它进行打包。现在,我们不想将样式(LESS)和脚本(JS)打包到同一个文件中,而是将它们单独分别打包,最终输出到cssjs目录下。

                  为了实现这个效果,我们可以这样配置webpack:

                  module.exports = {
                    entry: {
                      index: './src/js/index.js',
                      about: './src/js/about.js'
                    },
                    output: {
                      path: __dirname + '/output',
                      filename: 'js/[name].js',
                      publicPath: 'http://cdn.example.com/'
                    },
                    module: {
                      rules: [
                        {
                          test: /\.less$/,
                          use: ['style-loader', 'css-loader', 'less-loader']
                        }
                      ]
                    }
                  };
                  

                  这里我们定义了两个入口文件indexabout,使用不同的js文件进行了分别打包,将它们分别输出到output/js目录下。同时,使用publicPath配置将所有的资源请求都放到了CDN上。

                  我们还使用了less-loader,css-loader,style-loader来处理LESS文件,并将它们打包到了css目录下。

                  在HTML页面中引用我们的样式和脚本时,会使用publicPath配置的地址:

                  <link rel="stylesheet" href="http://cdn.example.com/css/index.css">
                  <script src="http://cdn.example.com/js/index.js"></script>
                  <script src="http://cdn.example.com/js/about.js"></script>
                  

                  这里可以看到,通过publicPath设置,我们的项目已经成功地托管在了CDN上,并且每个资源的请求路径都自动加上了publicPath的路径。

                  上一篇:块元素block element和内联元素inline element 下一篇:css3 旋转按钮 使用CSS3创建一个旋转可变色按钮

                  相关文章

                • <legend id='t2AVM'><style id='t2AVM'><dir id='t2AVM'><q id='t2AVM'></q></dir></style></legend>
                    <bdo id='t2AVM'></bdo><ul id='t2AVM'></ul>

                    <tfoot id='t2AVM'></tfoot>
                    <i id='t2AVM'><tr id='t2AVM'><dt id='t2AVM'><q id='t2AVM'><span id='t2AVM'><b id='t2AVM'><form id='t2AVM'><ins id='t2AVM'></ins><ul id='t2AVM'></ul><sub id='t2AVM'></sub></form><legend id='t2AVM'></legend><bdo id='t2AVM'><pre id='t2AVM'><center id='t2AVM'></center></pre></bdo></b><th id='t2AVM'></th></span></q></dt></tr></i><div id='t2AVM'><tfoot id='t2AVM'></tfoot><dl id='t2AVM'><fieldset id='t2AVM'></fieldset></dl></div>

                    1. <small id='t2AVM'></small><noframes id='t2AVM'>