【问题标题】:want to display a favicon on Nuxt.js + Google App Engine想在 Nuxt.js + Google App Engine 上显示一个网站图标
【发布时间】:2020-12-21 00:18:27
【问题描述】:

前提/我想要实现的目标

我正在 Google App Engine 上以 SSR 模式部署 Nuxt.js 应用。 当时,图标不再显示,所以我希望能够显示它。

yarn build + gcloud app deploy

顺便说一下,用下面的命令显示没有问题。

yarn dev

yarn build + yarn start

对应源码

export default = {  
  head: {
    link: [
      { rel: 'icon',
      type: 'image/x-icon', href: 'images/favicon.ico' }
    ]
  }
}(nuxt.config.js)
runtime: nodejs12

instance_class: F2

handlers:
  - url: /_nuxt
    static_dir: .nuxt/dist/client
    secure: always

  - url: /(.*\.(gif|png|jpg|ico|txt))$
    static_files: static/\1
    upload: static/.*\.(gif|png|jpg|ico|txt)$
    secure: always

  - url: /sw.js
    static_files: static/sw.js
    upload: static/sw.js

  - url: /.*
    script: auto
    secure: always

  - url: /images/favicon.ico
    static_files: static/images/favicon.ico
    upload: static/images/favicon.ico

  - url: /assets
    static_dir: assets

env_variables:
  HOST: '0.0.0.0'
  PORT: '8080'(app.yaml)

我把 favicon.ico 放在了 static/images 目录下。

【问题讨论】:

    标签: vue.js google-app-engine google-cloud-platform nuxt.js


    【解决方案1】:

    从您正在运行的命令来看,您在部署应用程序时似乎没有声明 app.yaml 文件。

    yarn build + gcloud app deploy
    

    试试:

    gcloud app deploy app.yaml --project [project-id]
    

    【讨论】:

    • 感谢您的回复!我做了 gcloud app deploy app.yaml --project [project-id] 但结果没有改变。
    【解决方案2】:

    请查看App Engine Official Documentation,了解如何设置 Favicon.ico

    当 Vue 在前端运行时,App Engine 将 Vuejs 应用程序作为静态网站进行管理。

    因此,您需要配置 app.yaml 以使用静态文件。

    app.yaml

    
    env_variables:
      HOST: "0.0.0.0"
      PORT: "8080"
    
    handlers:
    - url: /favicon\.ico
      static_files: static/favicon.ico
      upload: static/favicon.ico
    
    - url: /sw.js
      static_files: static/sw.js
      upload: static/sw.js
    
    - url: /static
      static_dir: public
    
    - url: /.*
      script: auto
      secure: always
    
    

    请查看以下App Engine documentation 以获取 App Engine 中的静态文件。

    【讨论】:

    • 感谢您的回复!我改了代码但没有解决。
    • ``` 运行时:nodejs12 instance_class:F2 处理程序:- url:/favicon\.ico static_files:favicon.ico 上传:favicon\.ico - url:/sw.js static_files:sw.js上传:sw.js - url:/assets static_dir:assets - url:/_nuxt static_dir:.nuxt/dist/client 安全:始终 - url:/(.*\.(gif|png|jpg|ico|txt)) $ static_files: static/\1 上传: static/.*\.(gif|png|jpg|ico|txt)$ secure: always - url: /.* script: auto secure: always env_variables: HOST: '0.0.0.0 ' 端口:'8080' ```
    • 我做了“gcloud app logs tail”。 “GET /favicon.ico HTTP/1.1”404 “GET /sw.js HTTP/1.1”404
    • 我已经编辑了我的答案,请看一下。请问您的 favicon.ico 是否位于静态目录中?您能否分享一下您的 App Engine 应用结构?
    • 请注意,favicon 和 swj 条目应放在主处理程序条目之前。
    猜你喜欢
    • 2011-08-07
    • 2012-06-19
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 2019-09-23
    相关资源
    最近更新 更多