使用django提供静态文件

时间:2017-06-19 11:08:35

标签: django

设置django网站,但我无法让它提供静态文件。 在设置文件

import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SETTINGS_DIR = os.path.dirname(__file__)

PROJECT_PATH = os.path.join(SETTINGS_DIR, os.pardir)
PROJECT_PATH = os.path.abspath(PROJECT_PATH)

TEMPLATE_PATH = os.path.join(PROJECT_PATH, 'templates')
STATIC_ROOT = os.path.join(PROJECT_PATH, 'angular/js')

STATIC_URL = '/static/'

在模板中

<script src="/static/js/angular.min.js"></script>

我可以提供主目录angular中的模板,里面是静态文件夹angular/static/js/angular.min.js

2 个答案:

答案 0 :(得分:1)

在setting.py文件中添加以下代码

STATIC_ROOT = os.path.join(BASE_DIR,"deploy_to_server")
STATIC_URL = '/static/'

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

并在您的模板中使用

<script src="/static/js/angular.min.js"></script>

在项目中创建静态文件夹

==> static ==> js ==> angular.min.js
==> manage.py

希望这对你有帮助

答案 1 :(得分:1)

不要STATIC_ROOT特定于app。它应该是整个项目范围。所以我的建议

STATIC_ROOT = os.path.join(PROJECT_PATH, 'static')
STATIC_URL = '/static/'
  • 然后添加名为app的{​​{1}}作为任何其他应用。

  • 添加到angular

  • 在其中创建文件夹INSTALLED_APPS,如

    static/angular/js
  • angular/static/angular/js 复制到其中

    angular.min.js
  • 通过angular/static/angular/js/angular.min.js

  • 访问它

因此,生产也不会有太大变化。