zoukankan      html  css  js  c++  java
  • webpack output.publicPath

    output.publicPath

    string function

    对于按需加载(on-demand-load)或加载外部资源(external resources)(如图片、文件等)来说,output.publicPath 是很重要的选项。如果指定了一个错误的值,则在加载这些资源时会收到 404 错误。

    此选项指定在浏览器中所引用的「此输出目录对应的公开 URL」。相对 URL(relative URL) 会被相对于 HTML 页面(或 <base> 标签)解析。相对于服务的 URL(Server-relative URL),相对于协议的 URL(protocol-relative URL) 或绝对 URL(absolute URL) 也可是可能用到的,或者有时必须用到,例如:当将资源托管到 CDN 时。

    该选项的值是以 runtime(运行时) 或 loader(载入时) 所创建的每个 URL 为前缀。因此,在多数情况下,此选项的值都会以/结束。

    默认值是一个空字符串 ""

    简单规则如下:output.path 中的 URL 以 HTML 页面为基准。

    path: path.resolve(__dirname, "public/assets"),
    publicPath: "https://cdn.example.com/assets/"
    

    对于这个配置:

    publicPath: "/assets/",
    chunkFilename: "[id].chunk.js"
    

    对于一个 chunk 请求,看起来像这样 /assets/4.chunk.js

    对于一个输出 HTML 的 loader 可能会像这样输出:

    <link href="/assets/spinner.gif" />
    

    或者在加载 CSS 的一个图片时:

    background-image: url(/assets/spinner.gif);
    

    webpack-dev-server 也会默认从 publicPath 为基准,使用它来决定在哪个目录下启用服务,来访问 webpack 输出的文件。

    注意,参数中的 [hash] 将会被替换为编译过程(compilation) 的 hash。详细信息请查看指南 - 缓存

    示例:

    publicPath: "https://cdn.example.com/assets/", // CDN(总是 HTTPS 协议)
    publicPath: "//cdn.example.com/assets/", // CDN (协议相同)
    publicPath: "/assets/", // 相对于服务(server-relative)
    publicPath: "assets/", // 相对于 HTML 页面
    publicPath: "../assets/", // 相对于 HTML 页面
    publicPath: "", // 相对于 HTML 页面(目录相同)
    

    在编译时(compile time)无法知道输出文件的 publicPath 的情况下,可以留空,然后在入口文件(entry file)处使用自由变量(free variable) __webpack_public_path__,以便在运行时(runtime)进行动态设置。

     __webpack_public_path__ = myRuntimePublicPath
    
    // 应用程序入口的其他部分
    

    有关 __webpack_public_path__ 的更多信息,请查看此讨论

  • 相关阅读:
    我的大菠萝 – 2,控件及数据绑定
    我的大菠萝 – 1,大框架的搭建
    企业培训·在线教育产品出来后为什么团队元老选择离职
    ET中热更(ILRuntime)使用过程中,需要做的适配器,比如Linq排序
    ET–异步协程使用–TimerComponent篇
    Windows Phone开发之”给我好评“
    博客园,我开始自己的随笔啦
    转换服务的端口号
    多进程模块multiprocessing的使用
    python中协程的使用示例
  • 原文地址:https://www.cnblogs.com/dehuachenyunfei/p/11162302.html
Copyright © 2011-2022 走看看