我将index.html放在/静电/文件夹中.当我try 时,我的Django应用程序运行正常:

http://127.0.0.1:8000/index.html

但是我想通过url访问index.html:

http://127.0.0.1:8000/

我写了一个视图,它起作用了:

class IndexView(TemplateView):
    template_name = 'index.html'

我还添加了urls.py(这样我就可以提供http://127.0.0.1:8000/css/style.css%的静电服务):

url(r'^(?P<path>.*)$', 'django.contrib.staticfiles.views.serve', {
            'document_root': settings.STATIC_ROOT, 'show_indexes':True
        }),

但我认为有一种方法可以在没有TemplateView的情况下执行我想要的操作.

有什么建议吗?谢谢.我的Django 版本是:Django 1.5

EDIT:

The reason i placed index.html into static: i want to make Phonegap compatible django app, so after proper coding, all i have to do is --> make .zip from static folder and upload it to Phonegap as mobile app. Easy and clean.

推荐答案

您可以服务static/index.html个这样的开发:

if settings.DEBUG:
    urlpatterns += url(
        r'^$', 'django.contrib.staticfiles.views.serve', kwargs={
            'path': 'index.html', 'document_root': settings.STATIC_ROOT}),

但是对于生产环境,您应该将您的nginx(或其他前端服务器)配置为为/个位置提供index.html个文件

UPDATE

我想解释一下你应该这样做.例如,您的django应用程序只是管理和api视图,但客户端与单页应用程序(Ember、Angular等)交互.所以你的项目至少有两个子项目,一个是你的django主应用,另一个是一个包含所有html/js/css内容的客户端apply.将客户端脚本与django后端分离是非常方便的,它允许前端开发人员完成他们的工作,避免django的存在(有朝一日它可以移动到独特的repo).

因此,在本例中,您将获得以下构建工作流:

  1. 运行客户端应用程序源观察器以重建脚本/样式/模板(brunch watchgrunt个作业(job)或gulp个观察任务)
  2. 与django一起收集静电进行生产
  3. 确保您有用于开发的urlpatterns补丁和用于生产的正确nginx配置

这是我的urls.py个例子

urlpatterns += patterns(
    'django.contrib.staticfiles.views',
    url(r'^(?:index.html)?$', 'serve', kwargs={'path': 'index.html'}),
    url(r'^(?P<path>(?:js|css|img)/.*)$', 'serve'),
)

Django相关问答推荐

Django后端对印前判断请求未通过访问控制判断给我以下回应:否访问控制允许来源

为什么Docker compose没有这样的文件或目录?

如何将Django项目连接到容器化的PostgreSQL数据库?

Django和静态文件

在Django中提交表单后更改模型数据

如何将多个模型添加到单个列表视图?

Django:创建一个动态侧边栏模板并在其他模板中使用它

如何重命名标准 django-registration 模板的名称

使用 Python/Django 上传大文件

EmailBackend 用于在 Django 中通过多个 SMTP 发送邮箱

Django ORM 和锁定表

所有子元素的Django自递归外键过滤器查询

TestCase 类中的 setUpClass、setUpTestData 和 setUp 有什么区别?

一个简单的Django和CSS示例

Django - 如何在其管理模块中访问模型的详细名称?

Python/Django:从 values_list() 创建一个更简单的列表

Django 存储匿名用户数据

在 django admin 中链接到外键对象

过滤查询参数

使用 .order_by() 和 .latest() 的 Django 查询