gpt4 book ai didi

phoenix-framework - Phoenix 框架 - Assets 不会在不运行 mix phx.digest 的情况下更新

转载 作者:行者123 更新时间:2023-12-04 13:45:19 27 4
gpt4 key购买 nike

更改 Assets (css 或 js)文件后,我在日志中看到更改已被注意到并编译,并且浏览器也会自动重新加载。

[debug] Live reload: priv/static/js/app.js
10:53:15 - info: compiled MyComponent.jsx and 2095 cached files into 2
files in 2.3 sec

但是,似乎没有 /priv/static 中的 Assets 。实际上被更新了。我只能在运行 mix phx.digest 后才能在浏览器中看到我的更改,并硬刷新浏览器。

有关如何解决此问题的任何想法?

使用:
  • Phoenix 1.3
  • 早午餐 2.10.7

  • 配置/dev.exs:
    config :my_app, MyApp.Web.Endpoint,
    http: [port: 4000],
    debug_errors: true,
    code_reloader: true,
    check_origin: false,
    watchers: [node: ["node_modules/brunch/bin/brunch", "watch", "--stdin",
    cd: Path.expand("../assets", __DIR__)]]

    # Watch static and templates for browser reloading.
    config :my_app, MyApp.Web.Endpoint,
    live_reload: [
    patterns: [
    ~r{priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$},
    ~r{priv/gettext/.*(po)$},
    ~r{lib/my_app/web/views/.*(ex)$},
    ~r{lib/my_app/web/templates/.*(eex)$}
    ]
    ]

    最佳答案

    TL;DR — 如果您不设置 cache_static_manifest在您的端点上设置,它不会生成版本化的 URL。
    所以,我知道我在这里晚了大约三年,但我最近发现了这一点。我发现只要设置 cache_static_manifest端点配置中的值将导致它在任何模式下使用摘要。 (这个 记录在案的,但在我看来并不是特别清楚。)
    现在,您可能会想“但我没有在 dev 模式下设置它。”我也这么认为,直到我意识到我写了一个幼稚的config/runtime.exs .
    当时,我一直专注于在运行发布时配置运行时,但完全忘记了它甚至在 时配置的东西。不是 在一个版本中运行。一旦我有条件,一切都很好。
    例子:

    if Config.config_env == :production do
    config :my_app, MyAppWeb.Endpoint, cache_static_manifest: "priv/static/cache_manifest.json"
    end

    关于phoenix-framework - Phoenix 框架 - Assets 不会在不运行 mix phx.digest 的情况下更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49655603/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com