在 Vue 的 public/index.html 挂载中引用散列文件
Referencing hashed files in Vue's public/index.html mount
我正在尝试将 OGP 元标记添加到我相对简单的 Vue.js 应用程序中。我在 GitHub 页面上 'hosting' 它,因此它不能在服务器端呈现,服务的 index.html 页面是 总是 静态。
我想添加这样的图片元标记:
<meta property="og:image" content="https://example.com/img/some_image.jpeg">
通常情况下,这不会有问题,但是 Vue.js 将散列添加到所有文件名,包括静态图像。
因此上面的标签实际上看起来像这样:
<meta property="og:image" content="https://example.com/img/some_image.09c37fe6.jpeg">
我可以在每次构建时去编辑这个散列,但这是愚蠢的,如果我决定使用自动构建系统,那将不起作用。那么,Vue.js 是否包括自动计算任何给定文件的哈希值的任何方法?
我假设这可能与 vue-cli
插入的 <link rel="icon" href="<%= BASE_URL %>favicon.ico">
标签有关,但我无法弄清楚究竟是什么提供了此功能,以及它是否可以使用.
我知道禁用哈希是一种选择,但我很好奇是否有可以让我保留哈希的解决方案。
没想到马上就回答了我自己的问题,看来我已经想通了。抱歉,如果像这样的东西对于普通的 Web 开发人员来说应该是非常明显的。
只需插入
require('./path/image.ext')
生成的文件仍然使用散列,如果您在实际 src
文件夹中使用所述文件,相对路径也有效:
<!-- Inside ./public/index.html-->
<!-- Accesses ./public/spirit.jpg -->
<meta property="og:image" content="<%= require('./img/spirit.jpg') %>">
<!-- Accesses ./src/assets/spirit.jpg -->
<meta property="og:image" content="<%= require('../src/assets/spirit.jpg') %>">
我正在尝试将 OGP 元标记添加到我相对简单的 Vue.js 应用程序中。我在 GitHub 页面上 'hosting' 它,因此它不能在服务器端呈现,服务的 index.html 页面是 总是 静态。
我想添加这样的图片元标记:
<meta property="og:image" content="https://example.com/img/some_image.jpeg">
通常情况下,这不会有问题,但是 Vue.js 将散列添加到所有文件名,包括静态图像。
因此上面的标签实际上看起来像这样:
<meta property="og:image" content="https://example.com/img/some_image.09c37fe6.jpeg">
我可以在每次构建时去编辑这个散列,但这是愚蠢的,如果我决定使用自动构建系统,那将不起作用。那么,Vue.js 是否包括自动计算任何给定文件的哈希值的任何方法?
我假设这可能与 vue-cli
插入的 <link rel="icon" href="<%= BASE_URL %>favicon.ico">
标签有关,但我无法弄清楚究竟是什么提供了此功能,以及它是否可以使用.
我知道禁用哈希是一种选择,但我很好奇是否有可以让我保留哈希的解决方案。
没想到马上就回答了我自己的问题,看来我已经想通了。抱歉,如果像这样的东西对于普通的 Web 开发人员来说应该是非常明显的。
只需插入
require('./path/image.ext')
生成的文件仍然使用散列,如果您在实际 src
文件夹中使用所述文件,相对路径也有效:
<!-- Inside ./public/index.html-->
<!-- Accesses ./public/spirit.jpg -->
<meta property="og:image" content="<%= require('./img/spirit.jpg') %>">
<!-- Accesses ./src/assets/spirit.jpg -->
<meta property="og:image" content="<%= require('../src/assets/spirit.jpg') %>">