Jim*_*Jay 13 python django static django-static
我是一个Django新手在我的第一个项目工作,并有静态文件的问题.
我使用django.contrib.auth两个模板创建了一个简单的auth系统:mysite/templates/index.html和mysite/templates/registration/login.html.我有全局静态内容mysite/static,我希望能够访问所有应用程序呈现的所有模板.
mysite/templates/index.html包含在我访问网址时<img src="{{ STATIC_URL }}pics03.jpg"/>呈现为"static/pics03.jpg"和加载的内容localhost:8000/
mysite/templates/registration/login.html包含当我访问网址时<img src="{{ STATIC_URL }}pics03.jpg"/>也会呈现为"static/pics03.jpg"和不加载的包含"localhost:8000/accounts/login/"
在我的urls.py中,我有:
urlpatterns = patterns('',
url(r'^$', 'mysite.views.home'), # plays index.html template
url(r'^accounts/login/$', 'django.contrib.auth.views.login'),
Run Code Online (Sandbox Code Playgroud)
在我的settings.py中,我有:
PROJECT_DIR = os.path.dirname(__file__)
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_DIR,'static'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
STATIC_URL = '/static/'
STATIC_ROOT = ''
Run Code Online (Sandbox Code Playgroud)
我是Django的应该寻找在STATICFILES_DIRS全球静态内容的印象,但即使我在那里更改URL为绝对路径的静态文件夹,并没有找到login.html的静态内容.任何人都可以对此有所了解吗?
krs*_*krs 19
您的问题是您没有在urls.py中收听URL"/ static /"
如果您通过apache或nginx等网络服务器提供应用程序,那么这是正常的,因为Web服务器将处理静态文件本身.
对于开发,Django带有内置的静态服务器
到urls.py,最后添加
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
Run Code Online (Sandbox Code Playgroud)
这样做是为了添加/ static/url,让你为没有web服务器的人提供服务.
这相当于
url(
regex=r'^static/(?P<path>.*)$',
view='django.views.static.serve',
kwargs={'document_root': settings.STATIC_ROOT,}
)
Run Code Online (Sandbox Code Playgroud)
有些人会告诉你,你需要将URL规则包装在"if settings.DEBUG"中以使用dev-only规则,但这根本不需要,实际上我发现这是一个糟糕的建议.
| 归档时间: |
|
| 查看次数: |
18308 次 |
| 最近记录: |