static
使用模板运算符时使用的搜索路径在( docs )中的settings.py
文件中定义。这将允许静态运算符找到库文件并生成 URL。STATICFILES_DIR
但是请注意,文件仍然需要由 Web 服务器从STATIC_URL
. manage.py
项目根目录中的工具包含一个命令,该命令collectstatic
可以将所有静态搜索目录复制到一个位置,以简化提供这些文件的操作。
另请注意,您展示了一个代码示例,它从 script 标记中引用 npm 库目录作为脚本,但浏览器将不知道如何从目录中找到脚本。node
通常使用库的package.json
来查找入口点。有必要在包中专门调出感兴趣的脚本文件。
一种选择是使用诸如 webpack 或 rollup 之类的捆绑工具将所有资源收集到一个位置。
另一种选择是将 node_modules 路径添加到静态路径,可能带有前缀。它可能如下所示。
STATIC_URL = '/static/'
STATIC_ROOT = 'dist/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
# This defines a prefix so the url paths will become `/static/node_modules/...`
('node_modules', os.path.join(BASE_DIR, 'node_modules/')),
)
特别包括index.js
而不只是模板文件中的 date-fns。
{% load static %}
<!-- .... -->
<script src="{% static 'node_modules/date-fns/index.js' %}"></script>
STATIC_ROOT
如果从以下命令收集和提供静态文件会将STATICFILES_DIRS
内容收集到dist/static
.
python manage.py collectstatic