Python 将一些静态文件的静态位置从/static/file.js更改为/file.js
我有一个网站在Django上运行,Heroku。 我需要为第三方插件添加几个静态JavaScript文件 我新添加的文件位于Python 将一些静态文件的静态位置从/static/file.js更改为/file.js,python,django,django-staticfiles,Python,Django,Django Staticfiles,我有一个网站在Django上运行,Heroku。 我需要为第三方插件添加几个静态JavaScript文件 我新添加的文件位于domain.com/static/filename.js。 我需要它们可以在domain.com/filename.js上找到 如何仅在domain.com/filename.js上提供新添加的Javascript文件 如果信息不足,请询问评论中需要哪些代码 如果只有这两个文件,我想您可以执行以下操作: 为要提供服务的每个文件创建URL 将这些URL连接到一个视图,该视
domain.com/static/filename.js
。
我需要它们可以在domain.com/filename.js
上找到
如何仅在domain.com/filename.js
上提供新添加的Javascript文件
如果信息不足,请询问评论中需要哪些代码 如果只有这两个文件,我想您可以执行以下操作:
- 为要提供服务的每个文件创建URL
- 将这些URL连接到一个视图,该视图返回包含正确内容的文件
- 有关示例视图,请参阅
- 在这种情况下,我的第一选择是修复阻止您将其放入
/static/
的任何问题。我无法想象任何半体面的第三方插件会要求文件位于根目录中;必须有某种方法将其配置为从子目录工作。如果没有,我将分叉项目并添加选项,然后尝试让他们将其合并回来。我意识到你可能已经探索过这个选项,但是你能给我们一些关于你尝试使用的插件的更多细节,以及它需要进入根目录的原因吗?这确实是最好的解决办法
如果您确实必须将文件保存在根目录中,并且希望将其作为django项目的一部分,我会尝试将文件符号链接到公共根目录中。这意味着它将在两个地点都可用;我不明白为什么这会成为一个问题,但你确实在根中指定了“ONLY”,我相信你有你的理由;在这种情况下,您可以将web服务器配置为从/static/filename.js
重定向到/filename.js
最后,从技术上讲,您可以将设置
STATIC\u URL
和STATIC\u ROOT
更改为指向根目录,但这听起来是一个非常糟糕的主意。如果您已经完成了这一步,并且仍然需要这样做,那么最好将文件从django项目中完全删除,然后手动将其放入web根目录中。是文件路径=/app/static/filename.js
和原始文件名=filename.js
,将文件从django项目中进行符号链接或移动到web根目录中似乎是最好的选择。