【问题标题】:How to mention static files in .js file for a django project?如何在 .js 文件中为 django 项目提及静态文件?
【发布时间】:2020-06-17 14:53:18
【问题描述】:

我在为 .js 文件提及我的 django 项目中的一个文件时遇到了问题

main.js 中的一行是

navigator.serviceWorker.register("{% static '/static/sw.js' %}")

但是在运行项目时它会显示Not Found: /sw.js

这是目录结构-

我应该如何在我的main.js 文件中提及sw.js 文件以避免fileNotFound 错误

添加到settings.py -

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
    '/static/',
]

urls.py 包括

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', index),
    path('/push_v1/', push_v1),
    path('/subscription/', subscription),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

完全错误 -

在 Github 上找到代码供参考Code Link

【问题讨论】:

  • 你试过了吗,{% static 'fbpush/static/sw.js' %}
  • 我刚试过,不行!另外,我在第一行的sw.jsmain.js 中都包含了{% load static %}。我还需要添加什么吗?
  • {% load static %} 应该添加到 HTML 文件中,而不是 js 文件中
  • 试一下{% static 'sw.js' %}{% static '/sw.js' %}
  • @ArakkalAbu 我已经尝试过了,它不起作用!同样的错误:(

标签: javascript python django static web-frontend


【解决方案1】:

在您的 setting.py 文件中设置静态文件的位置

STATIC_URL = '/static/'

STATICFILES_DIRS = (
   os.path.join(BASE_DIR, 'static'),
)

然后在你的模板中首先加载静态,然后设置脚本文件 n 模板本身。

{% load static %}

<script type="text/javascript" src="{% static 'sw.js' %}"></script>

【讨论】:

  • 感谢您的回复!我试过这个,但似乎没有工作。作为参考,我在github上添加了代码:code link
  • 去掉来自 STATICDIR_FILE 的逗号之后的额外静态,在你的模板脚本标签中你可以直接在你的 src 中执行 {% static 'sw.js' %}
  • 我做了建议的更改.. 似乎我仍然缺少某些东西。我已将更改提交到存储库。如果你能看一下,这将是一个很大的帮助(特别是index.html标题部分和main.js的第128行)repo link
  • 不是正在加载的静态文件还是只是js文件?
  • 如果是这种情况,请尝试运行此命令 python manage.py collectstatic 因为代码看起来不错。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-28
  • 2014-10-05
  • 2020-04-18
  • 2014-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多