我无法得到我的静态文件.我尝试了各种设置和目录配置等等,但它们只是变成404s.我安装了debug_toolbar,因此知道STATIC_URL正在到达我的请求上下文.
目录结构显示/静态(我还将目录放在饭菜app文件夹和用户内部,只是为了试一试.
/mealmate
/mealmate
/meals
/static
/css
/bootstrap.min.css
/templates
/users
Run Code Online (Sandbox Code Playgroud)
Settings.py(一些重要的设置,虽然我已尝试过各种其他设置):
MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media/')
STATIC_URL = '/static/'
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
)
WSGI_APPLICATION = 'mealmate.wsgi.application'
Run Code Online (Sandbox Code Playgroud)
在base.html中呈现
<link rel="stylesheet" href="/static/css/bootstrap.min.css">
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢
我怎样才能确定我的应用程序是否在开发服务器上运行?我想,我可以检查的价值settings.DEBUG
,并假设如果DEBUG
是True
那么它的开发服务器上运行,但我更愿意知道肯定不是依靠惯例.
我整天都在度过,没有任何作品.我在这里看到过至少20篇关于相同主题的帖子,他们对不同的建议有所不同,对我来说没什么用.使用Python 2.7运行Django 1.6.+我正在尝试从django教程加载民意调查应用程序的CSS.
项目布局
Project
|-polls
|-static
|-polls
style.css
|static
Run Code Online (Sandbox Code Playgroud)
这是settings.py
STATIC_URL = '/static/'
STATIC_ROOT = '/home/bri6ko/DjangoProjects/django1.6/PoolsDjangoProject/static'
Run Code Online (Sandbox Code Playgroud)
模板代码
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}">
Run Code Online (Sandbox Code Playgroud)
urls.py
urlpatterns = patterns(...)+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Run Code Online (Sandbox Code Playgroud)
民调/ urls.py
urlpatterns = patterns(....,url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/home/bri6ko/DjangoProjects/django1.6/PoolsDjangoProject/'}),)
Run Code Online (Sandbox Code Playgroud)
运行之后:python manage.py collectstatic,收集所有内容,并使用admin和polls文件夹和文件相应地填充root上的静态文件夹.
我启动服务器:python manage.py runserver一切正常,除了没有加载css
这是我在检查html时从Chrome控制台获得的内容
....
<link rel="stylesheet" type="text/css" href="/static/polls/style.css">
....
Run Code Online (Sandbox Code Playgroud)
看起来很好,但提供以下输出
[16/Nov/2013 00:44:41] "GET / HTTP/1.1" 404 2141
[16/Nov/2013 00:44:45] "GET /polls/ HTTP/1.1" 200 820
[16/Nov/2013 00:44:45] "GET /static/polls/style.css HTTP/1.1" 404 1649
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.我一步一步地跟着一切.我不知道该怎么办了
UPDATE …
在 Django 和 Google App Engine 方面,我有点菜鸟,我在应用程序设置中设置项目路径时遇到问题。具体来说,我试图引用一个 CSS 文件以与模板一起使用。我的目录结构如下:
app/
app/
-'__init__'.py
-settings.py
-urls.py
-views.py
-wsgi.py
img/
static/
css/
-style.css
templates/
-index.html
Run Code Online (Sandbox Code Playgroud)
我认为我的问题在于基于我过去几个小时所做工作的设置。我开始无法引用模板,但我想出了如何做到这一点,让我解释一下:
在 settings.py 中,我有以下有关模板的信息:
PROJECT_PATH = os.path.abspath(os.path.dirname(__name__))
TEMPLATE_DIRS = (
PROJECT_PATH + '/templates',
)
Run Code Online (Sandbox Code Playgroud)
结果证明这很简单。我设置了一个 PROJECT_PATH 来保存项目的路径,并附加了模板目录。但是,我仍然无法为静态文件做同样的事情,这就是我迷失的地方。关于静态文件,我在设置中有以下内容:
PROJECT_PATH = os.path.abspath(os.path.dirname(__name__))
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
PROJECT_PATH + '/static',
)
Run Code Online (Sandbox Code Playgroud)
从理论上讲,只要我使用的目录名为“/static/”,这些默认值就可以正常工作,但它的工作方式与模板不同。我尝试了很多不同的方法来尝试让这些值指向正确的目录,但只有一次我真正成功了,我认为这是使用绝对路径的组合,即“用户/用户名/应用程序” /static/css/' 一旦我部署项目就没有意义,因为我没有在我的计算机上托管它。另外我可能已经将静态目录移动到 app 子文件夹中,这也应该是不必要的。与模板文件相比,静态文件有什么不同?为什么我可以使用 PROJECT_PATH 并附加“/static”来实现与模板相同的结果?
我的项目中的其他一些有用信息:
app/urls.py:
urlpatterns = patterns(
'',
url(r'^$', views.index, name='index'),
) + staticfiles_urlpatterns()
Run Code Online (Sandbox Code Playgroud)
和:
templates/index.html:
<html>
<head>
{% load …
Run Code Online (Sandbox Code Playgroud) 我在 Django 中创建了一个项目。另外,我使用 django-allauth 进行注册和登录。
为了在 django-allauth 中使用我自己的模板,我在一个名为 account 的文件夹中创建了一个名为 signup.html 的 html 文件,该文件夹位于名为 templates 的文件夹中,该文件夹位于我的所有应用程序之外(/templates/account/signup.html)
。那个有效。
我尝试在 signup.html 中使用一些自定义 css 文件:
<link rel="stylesheet" href="/templates/account/signup.css">
Run Code Online (Sandbox Code Playgroud)
它说找不到文件。但是,它位于模板/帐户中。