引用Vue's public/index.html装载



我正在尝试将OGP元标记添加到我相对简单的Vue.js应用程序中。我在GitHub页面上"托管"它,因此它不能在服务器端呈现,提供的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">标签有关,但我不知道到底是什么提供了这种功能,以及是否可以使用它。

我知道禁用哈希是一种选择,但我很好奇是否有一个解决方案可以让我保留哈希。

没想到会立即回答我自己的问题,似乎我已经想明白了。很抱歉,如果像这样的东西对普通的网络开发人员来说是显而易见的。

只需插入

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') %>">

最新更新