【问题标题】:static html page in DjangoDjango中的静态html页面
【发布时间】:2014-12-19 12:02:00
【问题描述】:

我正在构建一个相当简单的实验来作为网站运行。
都是javascript,所以我需要服务器来存储实验结果。我已经在 WebFaction 上设置了一个 Django 服务器,但我的问题是让 django 将客户端重定向到第一个静态 html 页面(从 js 接管)。

我认为我的解决方案应该是这样的(使用 django 1.7.1):

urls.py

django.views.generic import RedirectView  

urlpatterns = patterns('',
    url(r'^$', RedirectView.as_view (url='fudge.html'))
)

DEBUG = Truesettings.py 上时它可以工作,但是当它设置为 False 时我得到:

Not Found
The requested URL /fudge.html was not found on this server.

我在 settings.py 中设置了STATIC_ROOT = '/AmirStatic/' 并按照我在网上找到的说明运行了python manage.py collectstatic,但这并没有奏效。 要么我不了解 Django 中的路径设置,要么配置不正确,要么我不了解如何使用静态网页。但我原以为它会比这简单得多。我花了整整 3 天的时间掉头发。

我会非常感谢任何对此提出好的建议的人,
提前非常感谢。

哦,我是 python、Django 和一般网络开发的新手,如果还没有遇到的话 :)

【问题讨论】:

  • 但是 /fudge.html 服务的是什么?
  • 你为什么使用RedirectView.as_view (url='fudge.html'))而不是实际的URL?您现在正在指定一个模板
  • 当您设置 DEBUG = False 时,django 将停止为您的静态文件提供服务,因此您需要为此配置反向代理(或任何您想为它们提供服务的代理)。我只使用过 nginx,但在那里我必须告诉 nginx 静态和媒体文件夹的位置,以便它可以为它们服务。我不知道他们在 WebFaction 上使用什么。
  • 如果您访问 /AmirStatic/fudge.html ,您会得到有效的响应吗? (如果没有,您至少应该从前端服务器而不是 django 收到错误)。您可能会遇到两个问题:将视图配置为指向静态 URL,然后让您的 Web 服务器为静态内容提供服务器

标签: javascript python html django static


【解决方案1】:

在开发时,Django 可以提供静态文件,但在投入生产时,django 不提供静态文件(不应该,它应该由您的反向代理处理,例如 nginx 或 apache)

请查看 django 文档的Deploying static files

【讨论】:

    【解决方案2】:

    正如@Mihai Zamfir 上面建议的那样——尝试实际使用 URL 并链接到视图。然后在视图中定义包含在fudge.html 中的模板的逻辑。

    例子:

    url(r'^fudge/$', views.fudge_view, name='fudge')
    

    这是假设您的urls.py 中也有:

    from your_app_name import views 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      • 2020-12-08
      • 2012-04-15
      • 1970-01-01
      相关资源
      最近更新 更多