Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Django替换静态站点/用mod_wsgi提供静态文件_Django_Apache_Mod Wsgi - Fatal编程技术网

用Django替换静态站点/用mod_wsgi提供静态文件

用Django替换静态站点/用mod_wsgi提供静态文件,django,apache,mod-wsgi,Django,Apache,Mod Wsgi,我有一个通过apache提供服务的现有静态网站。我想向该站点添加动态功能,所以我创建了一个Django应用程序,它位于子文件夹中(即/Django site/)。我的配置如下: WSGIDaemonProcess django_site processes=5 threads=5 user=user group=group python-home=path/to/virtualenv WSGIScriptAlias /django-site /var/www/django_sit

我有一个通过apache提供服务的现有静态网站。我想向该站点添加动态功能,所以我创建了一个Django应用程序,它位于子文件夹中(即
/Django site/
)。我的配置如下:

    WSGIDaemonProcess django_site processes=5 threads=5 user=user group=group python-home=path/to/virtualenv
    WSGIScriptAlias /django-site /var/www/django_site/wsgi.py
    <Location /django-site>
    WSGIProcessGroup group
    </Location>
WSGIDaemonProcess django_站点进程=5个线程=5个用户=用户组=组python home=path/to/virtualenv
WSGIScriptAlias/django site/var/www/django_site/wsgi.py
WSGIProcessGroup组
但是现在我想替换根目录中最初是静态页面的某些页面。但是我不想替换所有的静态页面

我知道将静态文件放在一个子目录中,如
/media
/static
和Django配置为根目录,但由于这些静态页面长期存在于根目录中,以及指向这些页面的外部链接,我不想改变这一点

有没有推荐的方法可以用动态页面替换这些静态页面

以下是我想到的一些想法:

  • 使用
    ProxyPass
    一次替换一个页面
  • 将静态页面重定向到动态版本,将内部链接更改为新的动态版本
  • 将动态站点移动到根目录,并使用类似的方法来服务这些文件

  • 您可以使用apachemod_rewrite来保持现有链接的功能。报告建议:

    说明: 我们如何能够无缝地将静态页面foo.html转换为动态变体foo.cgi,即在浏览器/用户未通知的情况下

    解决方案: 我们只是将URL重写为CGI脚本,并强制处理程序为CGI脚本,以便它作为CGI程序执行。这样,对/~qux/foo.html的请求会在内部导致对/~qux/foo.cgi的调用


    4) 使用现代客户端脚本技术实现动态特性,并使Django通过API(REST、Graphene等)为数据服务,有很多页面吗?您可以通过配置所有必要的URL从django为它们提供服务,并将它们作为HTTPResponse从django呈现。您可以通过nginx或app
    django.contrib.staticfiles
    提供静态文件,但迁移需要大量工作…@EgorWexler-不幸的是,有数千个页面需要继续以从根目录(即
    域/page.html
    域/page2.html
    )提供的形式存在(静态html页面)。不过,我只需要将其中一些页面迁移为动态页面。这就是我一直坚持的最佳方法is@DHamrick,也许您可以为动态URL提供特定的固定路径。例如,域/动态/。所以对于root来说,将不会有与Django相关的东西。@EgorWexler-这就是我现在拥有的。特定固定路径下的所有动态页面。但现在我想用动态页面替换几个静态页面,但在根目录下保留相同的URL。
    RewriteEngine  on
    RewriteBase    "/~quux/"
    RewriteRule    "^foo\.html$"  "foo.cgi"  [H=cgi-script]