我正在尝试将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') %>">