为啥更改我的“STATIC_URL”设置会改变我的 Django 应用程序是不是正常工作?
Posted
技术标签:
【中文标题】为啥更改我的“STATIC_URL”设置会改变我的 Django 应用程序是不是正常工作?【英文标题】:Why does changing my "STATIC_URL" setting alter whether my Django application works?为什么更改我的“STATIC_URL”设置会改变我的 Django 应用程序是否正常工作? 【发布时间】:2012-05-25 16:21:19 【问题描述】:在settings.py中,如果我指定STATIC_URL = 'http://68.164.125.221/'
,那么客户端可以访问我的网页。但是,不会加载 CSS 和其他静态文件。
另一方面,如果我指定STATIC_URL = '/'
,则访问我的应用程序的主页会产生此错误。
Page not found (404)
Request Method: GET
Request URL: http://68.164.125.221/
Directory indexes are not allowed here.
You're seeing this error because you have DEBUG = True in your Django settings file.
有趣的是,我的静态文件现在加载(例如 http://68.164.125.221/main.css 加载),尽管我的应用程序的主页显示此错误。
为什么更改我的“STATIC_URL”设置会切换是加载主页还是加载静态文件?我正在使用静态文件应用程序。
【问题讨论】:
【参考方案1】:你可能想要STATIC_URL = '/static/'
[1];当您将其设置为 /
时,Django 会尝试将 /blah/
作为静态文件提供服务,而不是将其推送到您的 Django 应用程序。
您遇到的实际错误 Directory indexes are not allowed here.
是指未列出静态文件夹这一事实 - 您必须访问特定文件才能提供该文件。
[1] 或 /media/,或 /files/,或其他任何...只是不是 '/'。
【讨论】:
谢谢,指定STATIC_URL = '/static/'
有效。尽管 Django 试图将 '/blah/' 作为静态文件提供,但你是什么意思?你的意思是我所有的 URL 映射都被视为静态文件?
是的,通过设置STATIC_URL='/'
Django 将忽略您的 URL 映射并尝试将所有内容作为静态文件提供。 (假设您使用的是内置开发服务器)以上是关于为啥更改我的“STATIC_URL”设置会改变我的 Django 应用程序是不是正常工作?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 UIPageViewController 中的页面没有改变?