Cow*_*nch 16 python django static web twitter-bootstrap
Django不会提供我的静态文件.这是返回的错误:
[13/Jun/2014 06:12:09] "GET /refund/ HTTP/1.1" 200 2927
[13/Jun/2014 06:12:09] "GET /static/css/bootstrap.min.css HTTP/1.1" 404 1667
[13/Jun/2014 06:12:09] "GET /static/css/cover.css HTTP/1.1" 404 1643
[13/Jun/2014 06:12:09] "GET /static/js/bootstrap.min.js HTTP/1.1" 404 1661
[13/Jun/2014 06:12:09] "GET /static/assets/js/docs.min.js HTTP/1.1" 404 1667
[13/Jun/2014 06:12:09] "GET /static/js/bootstrap.min.js HTTP/1.1" 404 1661
[13/Jun/2014 06:12:09] "GET /static/assets/js/docs.min.js HTTP/1.1" 404 1667
Run Code Online (Sandbox Code Playgroud)
这是我的base.html for bootstrap 的相关部分:
!DOCTYPE html>
<html lang="en">
{% load static %}
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="shortcut icon" href="../../assets/ico/favicon.ico">
<title>Cover Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
{
<link href="{% static "css/bootstrap.min.css"%}" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="{% static "css/cover.css" %}" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)
来自settings.py的相关代码(注意:模板工作正常.)
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
STATIC_URL = '/static/'
STATIC_ROOT = ''
Run Code Online (Sandbox Code Playgroud)
以下是我的django项目的布局:
任何帮助都将非常感激.我不知道我可能做错了什么,我已经查看了一百万次代码,显然它必须是我对Django如何提供静态文件的理解; 但是我之前没有遇到任何问题.
arg*_*aen 35
请执行下列操作:
如果您在DEBUG中,请在settings.py中设置STATICFILES_DIRS =("path/to/static")变量.它应该只在DEBUG模式下工作.
如果您希望它也在部署模式下工作,请在settings.py中设置STATIC_ROOT =("path/to/static_root")变量.然后,执行python manage.py collectstatic它也应该工作.
现在,为了更好地理解django如何管理静态文件:
Django有一些预定义的地方可以查找静态文件并收集它们,您可以使用settings.py中的STATICFILES_FINDERS指定在哪里找到它们.默认情况下,它会在您的应用中查找静态文件夹.您可以通过设置STATICFILES_DIRS变量(路径的列表或元组)来告诉Django在其他部分中查找静态文件.
在DEBUG模式下,从这些路径中挑选静态文件(而不是从收集文件的static_root).
执行时python manage.py collectstatic,Django会遍历可以找到静态文件的所有目录,并将它们放在静态根目录中.在部署模式下运行时,将从此目录提供静态文件.
PS:我通常做的是创建一个名为common的应用程序并在其中创建一个静态目录,以便为我的项目(以及模板)放置所有常见的css,js.这样,我不必指定STATICFILES_DIRS变量.
希望现在很清楚=).
更改 settings.py 的 STATIC_ROOT,我希望它会起作用。我面临同样的问题......
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
Run Code Online (Sandbox Code Playgroud)
好吧,刚刚完成教程,我就被这个问题困扰了。只需重新启动网络服务即可修复它。因此,如果只是完成教程说明,请将目录static/<your_application_name>/style.css放入名为 <you_app_name> 的目录中,同时将
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static '<your_app_name>/style.css' %}" />
Run Code Online (Sandbox Code Playgroud)
应该使用该 CSS 文件设计的html 文件(例如,index.html )的 head-section 内部。
| 归档时间: |
|
| 查看次数: |
28122 次 |
| 最近记录: |