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 网页包是否处理Vue应用程序的index.html?_Javascript_Webpack_Vue.js_Single Page Application_Assets - Fatal编程技术网

Javascript 网页包是否处理Vue应用程序的index.html?

Javascript 网页包是否处理Vue应用程序的index.html?,javascript,webpack,vue.js,single-page-application,assets,Javascript,Webpack,Vue.js,Single Page Application,Assets,在我的index.html中,head标记中包含以下内容: <link rel="apple-touch-icon" sizes="60x60" href="./assets/icons/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="./assets/icons/favicon-32x32.png"> <link rel="icon" type="image/

在我的index.html中,
head
标记中包含以下内容:

<link rel="apple-touch-icon" sizes="60x60" href="./assets/icons/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="./assets/icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="./assets/icons/favicon-16x16.png">
<link rel="manifest" href="./assets/manifest.json">


但是,无论何时加载index.html,这些资产都只是再次作为index.html加载,而不是它们的图像。网页包不处理index.html吗?是否有其他方法将处理过的内容放入
标题
标记中?或者我必须把它们放在
static
目录中吗?

你必须把它们放在
static
文件夹中-原因是
index.html
从Webpack接收到的唯一处理方法(如官方Vue模板中配置的)是注入生成的JS和CSS文件。它只是忽略对资产的现有引用。所以你有几个选择:

  • 继续使用Vue的官方网页包模板,并将静态资产存储在
    /static
    中,然后在
    index.html
    中使用指向部署的路径(而非开发环境)手动引用它们
  • 在一个或多个Vue单文件组件中使用您的资产-然后它们的相对URL将由Vue loader处理并正确包含在您的包中。在这种情况下,您不必手动将它们包含在
    index.html
  • 使用-官方Vue模板已经使用后者将JS和CSS注入
    index.html
    您必须修改
    /build/webpack.prod.conf.JS
    并配置上述插件-查看GitHub上的示例

  • 为了回答您的问题-获得哈希版本控制和压缩的唯一方法是使用相对路径从Vue组件引用您的资产,以便Vue loader正确处理这些资产。

    您能解释一下原因吗?如果我必须将它们放在静态文件夹中,是否仍有可能保留webpack的好处(如结尾处的版本哈希或压缩,如果可能,删除空白等)。谢谢您提供的详细信息。这更有意义。对于#2,是否可以在组件中包含类似的内容?我认为像favicon这样的标题应该在页面的源代码中。当然,favicon应该位于index.html中-在这种情况下建议您使用选项(1)。