- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试在子域上部署我的 django 应用程序,例如 example.djangoapp.com,一切正常,除了我的 django 管理站点,当我单击转到管理站点的链接时,它会路由到不同的网址。当我使用管理 url 模板标记时会发生这种情况,即它路由到 djangoapp.com/index 而不是 example.djangoapp.index.fcgi/login (这是管理站点)。
删除管理 url 模板标记后,我将绝对 URL 添加到重定向到管理站点,此操作正常并且管理站点显示,但不提供其静态文件。所以我介于两者之间。
我正在部署在共享托管上运行 fastcgi 的服务器上
我的问题:
1)选项 1(使用管理 url 模板标签):
如何让 django 将我重定向到正确的管理站点 (www.example.djangoapp.index.fcgi/login),而不是将我重定向到 (www.djangoapp.com/index)。
2) 使用绝对 url 时:现在我在我的主模板索引页面中硬编码了管理链接,这工作正常,但 django 管理静态文件不提供服务。他们如何获得服务?
请原谅我的无知,但我已经为此苦苦挣扎了好几个星期。我决定对 URL 进行硬编码,但管理站点静态文件仍然没有被提供。
下面是我的settings.py、urls.py和index.html(我在其中硬编码了管理站点url)。此代码与上面的选项 2 内联,该选项具有硬编码的管理站点 URL。
设置.py
WSGI_APPLICATION = 'cconnect_web.wsgi.application'
# Database
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
'CONN_MAX_AGE': 3600,
}
}
# Internationalization
# https://docs.djangoproject.com/en/1.8/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Africa/Cairo'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.8/howto/static-files/
STATIC_URL = '/cconnect/static/'
STATIC_ROOT = '/home4/techaven/public_html/cconnect/static'
FORCE_SCRIPT_NAME="/index.fcgi/"
网址.py
from django.conf.urls import *
from django.conf.urls import include, url
from django.contrib import admin
from cconnect_frontEnd import views
from . import settings
#app_name = 'cconnect_frontEnd
urlpatterns = [
url(r'^$', views.index, name ='index'),
url(r'^backend/', include('Back_End.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root':settings.STATIC_ROOT}),
]
urlpatterns += patterns('Back_End.views',
(r'^login/$', 'login_view'),
)
admin.site.site_header = 'Cconnect Administration.'
index.html
<body>
<div class="header-wrapper">
<nav>
<div class=nav-wrapper">
{% load staticfiles %}
<img src="{% static "cconnect_frontEnd/images/slide/logo.png" %}" alt="Conference Connect"/>
<ul class="right hide-on-med-and-down">
{% load admin_urls %}
<li><a href="http://cconnect.techavenue137.rw/index.fcgi/admin">Sign In</a></li>
<li><a href="#feature-title">Features</a></li>
<li><a href="#demo-video">Videos</a></li>
</ul>
索引.fcgi
import os
import sys
from flup.server.fcgi import WSGIServer
from django.core.wsgi import get_wsgi_application
sys.path.insert(0, "/home4/techaven/public_html/cconnect/cconnect_web/")
os.chdir("/home4/techaven/public_html/cconnect/cconnect_web")
os.environ['DJANGO_SETTINGS_MODULE'] = "cconnect_web.settings"
WSGIServer(get_wsgi_application()).run()
.htaccess
AddHandler fcgid-script .fcgi
DirectoryIndex index.fcgi
RewriteEngine On
RewriteCond %{HTTP_HOST} ^cconnect\.techavenue137\.rw$ [OR]
RewriteCond %{HTTP_HOST} ^www\.cconnect\.techavenue137\.rw$
RewriteRule ^/?$ "http\:\/\/www\.techavenue137\.rw\/cconnect\/index\.fcgi" [R=301,L]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /cconnect/
RewriteRule ^index\.fcgi$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} !^/static/
RewriteRule ^(.*)$ /cconnect/index.fcgi/$1 [L]
</IfModule>
感谢您的帮助,并再次原谅我愚蠢的问题。
最佳答案
您需要添加重写规则以将浏览器请求重定向到管理页面的实际静态文件。在最后的重写规则下方,添加以下行:
RewriteCond "%{REQUEST_URI}" ".*/static/admin/.*"
RewriteRule "(.*)/cconect/(.*)" "$1/index.fcgi/$2" [R, L]
这里的重写条件是如果请求的URI包含/static/admin
则将cconnect
替换为index.fcgi
并保留其他一切都一样。将其标记为重定向 [R],如果找到则停止规则处理 [L]。我希望这能解决您的问题。
免责声明:我对正则表达式模式不是很精通,而且我对 Apache 有基本的了解,所以这个解决方案可能需要调整。看看here如果你需要调整它。
关于python - Django 不使用 fastcgi 提供管理静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37948141/
我对 FastCGI 的工作原理有点困惑。我的程序真的只有一个实例在运行,还是有一些神奇的线程在运行?这很重要,因为如果我的数据结构的范围在主循环之外,我需要知道这些数据结构是否需要是线程安全的。 编
FastCGI 很旧,但在某些情况下它似乎仍然是正确的答案。 似乎 Perl/Catalyst Web 应用程序的首选部署是使用 FastCGI。 FastCGI 在 Rails 中很流行,但现在似乎
除了建立 TCP 连接之外,如何检查 FastCGI 服务器是否处于事件状态并正常运行? 我有许多远程、独立的 FastCGI 服务器。我想监控 FastCGI 服务器本身以确保其存活。简单地向 We
我今天在 Cherokee 上设置 Django(使用 SCGI),我注意到 the Django docs假设您可以使用主机/端口组合或套接字在网络服务器和 Django 之间进行通信。 他们在这件
httpd 配置文件可以有多少个 fastcgi 处理程序?我想设置 httpd 服务器来服务器在不同 tcp 套接字上运行的多个 fastcgi 程序。例如:http://uwsgi-docs.re
我已经将 Web 服务器配置为通过命名管道使用“远程”fastCGI 应用程序(它实际上位于同一台 Windows 主机上)。我现在正试图找出如何启动 fastCGI 应用程序以使用此管道,但我不确定
我正在写 FastCGI wire protocol implementation in C (还导出了一个用于编写应用程序服务器的更高级别的 C++ 接口(interface))并且我已经完成了足够
我理解 FastCGI 在性能方面优于其他网关接口(interface)的目的。但是,如果实现 FastCGI 的库已经不得不通过艰苦的措施来实现安全高效的 TCP 服务,为什么不直接将应用程序编写为
我正在使用 nginx、factcgi 和 spawn-fcgi 并试图让它工作。 我按如下方式启动 spawn-fcgi: g++ rtbTimeSeries.cpp -o forecast.fcg
我有一个 FastCGI Perl 网络应用程序(使用 CGI::Fast 编写,但这应该无关紧要),我想在FastCGI 模式下进行测试。 我可以使用什么 Perl 模块来运行 FastCGI 应用
谁能提供我一步一步的方式,我可以运行apache2在快速-cgi上ubuntu 22.10,我尝试了几件事,但我得到一个空白页或错误,我是在新安装的Apache2服务器实例。。Thnx!。尝试了很多东
我正在构建一个 C++ API,我想将其作为 Web 服务提供。我正在考虑使用 REST API,并决定使用 FastCGI 或 FastCGI C++ 在 C++ API 和 Web 服务器之间进行
我试图添加 try_files 来检查 php 文件是否存在,但它给了我错误。 "try_files" directive is duplicate in /etc/nginx/snippets/fa
我计划在Rebol(目前在Apache 2上为CGI)中编写一个相当不错的Web应用程序,但是最初的性能测试却非常令人沮丧。在应用程序上运行apache基准测试时,我仅得到4-5个请求/秒。我想知道其
我正在使用 web.py、spawn_fcgi 和 nginx 在 Python 中编写 Web 应用程序。 假设我在 nginx 中有这个配置块: location / { include
我正在实现一个 fastcgi 应用程序,在阅读了 fastCGI 规范后,我发现了一个名为“请求多路复用”的功能。它让我想起了 Adobe RTMP 多路复用在协议(protocol)是专有和封
我一直在尝试实现Web服务器网关(出于娱乐和教育目的),并且对于前叉模型,我对FastCGI/SCGI背后的核心体系结构有一些疑问。 FastCGI/SCGI实现如何处理前叉场景中的通信? AFAIK
我编写了一个简单的 Perl 脚本,通过 Apache 上的 fastCGI 运行该脚本。该应用程序加载一组 XML 数据文件,这些文件用于根据传入请求的查询参数查找值。据我了解,如果我想增加应用程序
我正在尝试使用FastCGI(和restcgi)开发简单的RESTful api。当我尝试实现 POST 方法时,我注意到输入流(表示请求正文)是错误的。我做了一个小测试,看起来当我尝试读取流时,只收
我正在运行 2 个不同的 php 版本。它们运行良好,但没有连接到 mysql,我不知道为什么。它们应该是,但我不知道如何强制它们连接 mysql。 php版本是5.3.27和5.4.31如果您需要更
我是一名优秀的程序员,十分优秀!