2011-12-23 94 views
0

我想用静态文件来加载我的css和runserver命令。问题是,我尝试了所有我发现这里的计算器以及在Django文档的解决方案,但它不工作在所有...我不知道我能做些什么? 如果我设置在开发环境中服务django静态文件

STATIC_URL = '/static/' 
STATIC_ROOT = 'C:\Users\Max\Works\www\mysite\mysite\static' 
INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
) 

我认为这足够了...我错过了什么吗? 你能告诉我在develompent envirnoment中有什么静态文件的最佳设置? 感谢意见...

EDIT(1) 我已经在推杆我的模板{{STATIC_URL}} CSS /暗grey.css”和OFC的CSS是在C:\用户\最大\工程\ WWW \ mysite的\ mysite的\静\ CSS \暗grey.css,我真的不能得到的是错误的...

回答

0

在你的settings.py

DEBUG =真

作为每文档:

这VIE w由runserver自动启用(DEBUG设置为 设置为True)。

使用URL模式是强制它的一种方式,我个人甚至不需要在我的项目中做,只要DEBUG = True即可。当你开发时,你总是会有DEBUG,当你切换到生产时,你甚至不用开发服务器,所以你会把生产服务器指向静态位置。

这是我的settings.py中静态设置的一个片段。我不必须手动添加静态视图URL

import os 

DEBUG = True 

PROJECT_ROOT = os.path.dirname(__file__) 
PROJECT_NAME = os.path.basename(PROJECT_ROOT) 

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static/') 
STATIC_URL = '/static/' 

# Additional locations of static files 
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static". 
    # Always use forward slashes, even on Windows. 
    # Don't forget to use absolute paths, not relative paths. 
    os.path.join(PROJECT_ROOT, 'web/'), 
) 

# List of finder classes that know how to find static files in 
# various locations. 
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
) 


TEMPLATE_CONTEXT_PROCESSORS = (
    ... 
    'django.core.context_processors.static', 
    ... 
    ... 
) 
+0

试过了,但它根本不起作用。我将你的代码复制/粘贴到我的settings.py文件中,它会像以前一样提供404错误... – Maksim

+0

只需复制和粘贴即可立即修复它。您是否修改了STATICFILES_DIRS以指向包含静态内容的目录?我的项目根目录下称为web/right。这是我保留所有顶级常规静态内容的地方。如果应用程序拥有自己的应用程序,每个应用程序下都会​​有一个静态/目录。实际上,STATIC_ROOT对于当前的情况并不重要。 – jdi

+0

是的,我知道了,现在它的工作原理,非常感谢...现在我有问题,我的模板不能正确替换文件路径...如果我把它放在来源href =“{{STATIC_URL}} css/dark-grey.css” – Maksim

0

您需要添加URL模式:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns 

# ... the rest of your URLconf here ... 

urlpatterns += staticfiles_urlpatterns() 

参见文档here

+0

做到了,我得到同样的错误,找不到网页(404) 请求方法:\t GET 请求URL:\t http://127.0.0.1:8000/static/css/dark-grey.css – Maksim

+0

嗯ok了。让我们看看它与static_url中的窗口路径有关吗?你可以检查它与附加/? – c4urself

+0

你是什么意思“附加/”?我不明白这一点... – Maksim

-3

您还需要运行以下命令以获取静态的fi莱搬进正确的位置(和Django的知道他们在那里):在Django 1.3静态文件

python manage.py collectstatic 

完整的文档在这里: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/

+0

这只适用于运行生产服务器时需要指向静态位置。在开发服务器,它会检查你的静态定义的目录和应用程序的静态/目录 – jdi

+0

有用的,谢谢:-) –

+0

其实我已经做到了,现在我/静态/文件夹充满文件,得到另一个/静态/我的原始css文件夹和文件...我可以访问css在http://127.0.0.1:8000/static/static/css/dark-grey.css O_o – Maksim

1

使用/斜线和NOT \斜线的路径,甚至可用于Windows的路径。

相关问题