【问题标题】:Can't include external javascript file by static URL不能通过静态 URL 包含外部 javascript 文件
【发布时间】:2023-03-13 14:54:02
【问题描述】:

我正在尝试通过静态 URL 包含外部 javascipt 文件,例如:

<script type="text/javascript" src="{{ url_for('static/js', filename='test.js') }}"></script>

但出现以下错误:

werkzeug.routing.BuildError: ('static/js', {'filename': 'test.js', 'lang': 'en'}, None)

我使用 python 烧瓶框架进行后端编程。如果我在 html 文件中展开 javascript,效果会很好。

【问题讨论】:

  • 你的项目根目录中有static/js/test.js吗?
  • 我猜。至少我可以通过http://127.0.0.1:5000/static/js/test.js 访问 javascript 文件
  • url_for 的第一个参数是端点的名称。 Flask 提供了一种名为static 的方法。 js/ 等任何路径信息都应包含在 filename 参数中。

标签: javascript python flask include


【解决方案1】:

根据这个答案https://stackoverflow.com/a/20647713/541038

你应该这样做

<script type="text/javascript" src="{{ url_for('static", filename='/js/test.js') }}"></script>

[编辑]顺便说一句,你可能只是这样做

<script type="text/javascript" src="/static/js/test.js"></script>

(这是我引用我的静态文件的方式......除非我确定我要将它们移到云端(如果我移动整个应用程序很好......只有当我打算为我的来自不同服务器的静态资源))

【讨论】:

  • 好吧,我不再收到错误消息,但我仍然无法访问我的基本功能。我还尝试了您的第二个建议 - 结果相同。那么你如何访问你的功能呢?也许我这样做完全错误的方式......
  • 您应该在项目的根目录中有一个名为 static 的文件夹(紧邻 templates 文件夹...在静态中您应该有一个文件夹 js 并且在该文件夹中您应该有 test.js ... 也按 f12 并单击网络选项卡以查看它试图记录的 url
  • 我也认为在第二个例子中它可能需要一个前导斜杠......(也许是第一个......我不确定)无论如何
猜你喜欢
  • 2012-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-27
  • 2012-01-24
  • 2012-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多