Django开发在node_modules中找不到第三方脚本

时间:2017-05-29 15:58:20

标签: django npm

我在Windows 10上使用debug = True的开发环境中工作。

我安装了node和npm,并从我项目的主文件夹中运行npm microm。它创建了一个node_modules子文件夹,其中包含一个microm文件夹。所以microm.js脚本位于:

F:\ RoomTemp的\ node_modules \ microm的\ microm.js

我的设置文件的相关部分是:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
...
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'node_modules')

我的模板包含以下内容:

{% load staticfiles %}
<script src='{% static "/microm/microm.js" %}'></script>

当我尝试加载页面时,Chrome控制台显示404,我在服务器控制台中看到了这一点:

"GET /static/microm/microm.js HTTP/1.1" 404 1661

我已经阅读了许多似乎包含解决方案的SO问题但到目前为止还没有。我也在网上搜索过。到目前为止没有运气。任何帮助将不胜感激。

麦克

1 个答案:

答案 0 :(得分:2)

首先,我不认为您应该在node_modules文件夹中 Opbrengst Datum 1 10 786304986 2 100 1048457710 3 1000 221796843 4 1000,01 20160628 5 1000,78 20170104 STATIC_ROOT是django管理commant STATIC_ROOT在准备部署时将所有应用程序中的所有静态文件放入的位置。此过程可能会导致某些文件被覆盖。

请将STATIC_URL恢复为某些理智的值,例如

collectstatic

然后使用STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static') 设置。这就是告诉django要查找静态文件的额外位置。

STATICFILES_DIRS

最后,确保您的STATICFILES_DIRS = [os.path.join(BASE_DIR, 'node_modules')] 有这些

STATICFILES_FINDERS