【问题标题】:Issues with downloading a PDF after deploying Vue.js app部署 Vue.js 应用程序后下载 PDF 的问题
【发布时间】:2021-03-28 19:15:08
【问题描述】:

所以我正在创建一个 Vue.js 网络应用程序作为我的简历。在那里,我希望用户能够真正下载我的简历副本,但我似乎无法让它正常工作。在我的Home.vue 页面上,我有:

<template>
  <div class="flex-grow overflow-auto max-h-screen w-full dark:text-gray-300">
    <div class="m-auto pt-4 lg:grid lg:grid-cols-2 lg:grid-rows-2 lg:gap-8">
      <div class="m-auto">
        <img class="rounded-md" alt="headshot" src="../assets/headshot.jpg">
      </div>
      <div class="m-auto">
        <h2 class="text-2xl pl-2 py-4 text-center lg:text-left lg:text-8xl lg:px-8">Quick blurb</h2>
      </div>
      <div class="lg:col-span-2 mx-auto lg:h-8">
        <p class="text-base text-center lg:text-2xl">
          <a href="mailto:example@example.com">Email</a>
          &nbsp;|&nbsp;
          <a href="https://www.linkedin.com" target="_blank">LinkedIn</a>
          &nbsp;|&nbsp;
          <a href="https://github.com" target="_blank">GitHub</a>
          &nbsp;|&nbsp;
          <a href="my_resume.pdf" download>Resume</a>
        </p>
      </div>
    </div>
  </div>
</template>

<script>

export default {
  name: 'Home'
}
</script>

当我在本地运行它时,下载它没有问题。当我运行yarn build 并从dist/ 运行服务器时,下载它没有问题。只有当我在 AWS Amplify 上部署它并从那里测试它时,我才会遇到问题(基本上就像它找不到它一样)。我试过放

<a href="/my_resume.pdf" download>Resume</a>

还有

<a :href="`${publicPath}my_resume.pdf`" download>Resume</a>
....
data () {
  return {
    publicPath: process.env.BASE_URL
  }
}

无济于事。它位于public/ 文件夹中,还有index.html 和一个可以毫无问题地访问的图标。我不知道问题是什么。

【问题讨论】:

    标签: vue.js pdf aws-amplify


    【解决方案1】:

    我不知道你使用什么版本的 vue 以及你是如何配置你的 webpack 的,所以我不知道我的解决方案是否适合你,但我走了:

    1. 将 assets 文件夹添加到您的公用文件夹并在其中添加您的 pdf: example

    2. 到您的源文件夹添加文件 vue.config.js 如果它还没有:example

    1. 在 vue.config.js 中将 assets 定义为 assets 文件夹:
    module.export ={
      assetsDir: 'assets'
    }
    
    <a href="assets/my_resume.pdf" download>Resume</a>
    

    这里是文档:https://cli.vuejs.org/config/#assetsdir

    【讨论】:

    • 仍然遇到同样的问题。每当我下载它并尝试在 Adob​​e 中打开它时,我都会收到“Adobe Acrobat 无法打开‘my_resume.pdf’,因为它不是受支持的文件类型或文件已损坏(例如,它是作为电子邮件附件且未正确解码)。”
    • 那有进展吗?我的意思是在你根本找不到pdf之前,现在你下载它已经损坏了。或者它仍然是相同的行为?
    • 相同的行为。我刚刚尝试在文本编辑器中打开它,它看起来实际上是出于某种原因下载 index.html 文件。
    • 我对这个问题的思考过程是 webpack 在构建时会损坏 pdf。所以我提出的解决方案应该通过将 pdf 文件放入 webpack 未处理的公共文件夹来解决它。如果它加载 index.html,您可以尝试重定向到应该在 public/assets/my_resume.pdf 中的 pdf。老实说,这就是我所得到的。祝你好运:)
    猜你喜欢
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多