Django找不到我的静态文件

时间:2017-05-20 17:44:41

标签: python django twitter-bootstrap web static

我对网络开发相对较新。我正在尝试构建我的第一个Web应用程序。我在project_root / static中有我的静态文件夹,但出于某种原因,我在运行服务器时仍然获得404s:

未找到:/users/login/js/bootstrap.min.js 例如。

我在html的顶部和我的settings.py中有{%load staticfiles%}:

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

感谢。

编辑:已修复以下答案的组合。谢谢大家!

4 个答案:

答案 0 :(得分:1)

继续阅读本文 - http://agiliq.com/blog/2013/03/serving-static-files-in-django/

摘要,例如,如果用户是项目中的应用名称,则创建dir-' users / static / js /'。并放入bootstrap.min.js。可以在localhost:8000 / static / js / bootstrap.min.js访问此文件。现在继续尝试一下。

那么Django里面发生了什么?它是如何工作的? 阅读本文 - http://agiliq.com/blog/2013/03/serving-static-files-in-django/

答案 1 :(得分:1)

将静态js,css和其他文件放在项目目录中名为static的目录中,然后这些设置就可以了:

# this defines the url for static files
# eg: base-url.com/static/your-js-file.js
STATIC_URL = '/static/'

# this is directory name where collectstatic files command will put your app level static files
STATIC_ROOT = 'staticfiles'

# this is directory paths where you have to put your project level static files
# you can put multiple folders here
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)

根据这些设置,您将能够正确访问静态文件

答案 2 :(得分:0)

如果DEBUG=True是settings.py,它将无法使用。在这种情况下,Django希望Apache / Nginx处理静态文件。

答案 3 :(得分:0)

在 settings.py 中使用以下代码

MEDIA_URL = '/media/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_ROOT = '/xxx/site/public/static/'
MEDIA_ROOT =  '/xxx/site/public/media/'

或 在 settings.py

中删除或评论 DEBUG = True