将一些静态文件的位置从 /static/file.js 更改为 /file.js

change static some static files location from /static/file.js to /file.js

我在 Django、Heroku 上有一个网站 运行。 我需要为第三方插件添加一些静态 JavaScript 文件。

我新添加的文件在 domain.com/static/filename.js 可用。 我需要它们在 domain.com/filename.js.

可用

如何使新添加的 Javascript 文件在 domain.com/filename.js 可用?

如果信息不够,请在评论中询问需要哪个代码。

如果只有几个这样的文件,我想您可以执行以下操作:

  • 为您要提供的每个文件创建 URL
  • 将这些 URL 连接到 returns 具有正确内容的文件
  • 参考this snippet查看示例

在这种情况下,我的第一选择是修复阻止您将其放入 /static/ 的任何内容。我无法想象任何像样的第三方插件会要求文件位于根目录中;必须有某种方法可以将其配置为从子目录工作。如果没有,我会分叉项目并添加选项,然后尝试让他们将其合并回来。我知道您可能已经探索过这个选项,但是您能否向我们提供有关您尝试使用的插件的更多详细信息,以及它需要进入根目录的原因?这确实是最好的解决方案。

如果您确实必须将文件放在根目录中,并希望将其保留为 django 项目的一部分,我会尝试将文件符号链接到 public 根目录中。这意味着它将在两个位置都可用;我不明白为什么会出现问题,但是您确实在根目录中指定了 "ONLY",我相信您有自己的理由;在这种情况下,也许您可​​以将您的 Web 服务器配置为从 /static/filename.js 重定向到 /filename.js?

最后,从技术上讲,您 可以 更改设置 STATIC_URLSTATIC_ROOT 以指向根目录,但这听起来是个很糟糕的主意我。如果你已经走到这一步并且仍然需要这样做,那么最好将文件完全从你的 django 项目中取出并手动将它放在你的网络根目录中。