当前位置: 首页 > 知识库问答 >
问题:

禁用Python文件的Apache缓存

楚建柏
2023-03-14

我正在与django合作,做facebook集成,需要一个测试服务器。我对Apache及其缓存有很多问题。pyc文件,我甚至在stackoverflow上问过。

该解决方案可行,但我想知道是否有一个选项可以禁用此类文件的Apache缓存。服务器重启对我来说可能是个问题。

编辑:

这是django。wsgi代码:

path = '/not/actual/path'
if path not in sys.path:
    sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'notactualproj.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

共有1个答案

鲁昕
2023-03-14

你应该弄清楚为什么那些不需要的<代码>。pyc文件首先存在(这些文件在您的存储库中吗?应该忽略它们)。

如评论中所述,如果您有悬空的。导致问题的pyc文件,您可以合并删除所有。当您将较新的代码部署到服务器时,pyc文件将作为拉取过程的一部分。运行应用程序将重新创建导入模块时所需的应用程序。

现在,如果您真的不想生成字节码,可以使用环境变量PYTHONDONTWRITEBYTECODE,但我不建议这样做,因为这似乎是一个非常过度的解决方案。

现在,你必须区分这里的两个问题。

  • python生成的旧字节码文件(例如.pyc文件),在特定情况下可能会导致问题,例如用模块替换文件,但通常不会引起关注
  • Mod WSGI不会重新加载上传的较新代码。这取决于您运行Mod WSGi的模式,一个常见的症状是点击一个页面似乎会随机拉取更新或旧版本的代码

要解决第一个问题,您只需要删除未使用的字节码文件。但是,同样,这可能不是导致您的问题的原因。

要解决第二个问题,你有两个解决方案

  • 上载新代码时重新启动apache。使用apache2ctl-k,这对用户来说是透明的,我不明白为什么“服务器重启可能是个问题”,除非你在共享主机上
  • 使用代码重新加载,您可能需要查看mod\u wsgi文档

我不认为字节码是你的问题,代码重新加载可能是。

 类似资料:
  • 问题内容: 默认情况下,Python的解释器是否启用输出缓冲? 如果答案是肯定的,那么有什么方法可以禁用它? 到目前为止的建议: 使用命令行开关 包装每次写入后刷新的对象 设置环境变量 还有其他方法可以在执行过程中以编程方式在中设置一些全局标志吗? 问题答案: 你可以使用”python -u”()或通过设置环境变量PYTHONUNBUFFERED来跳过整个python进程的缓冲。 你还可以将替换为

  • 我有一个Spring Boot应用程序,它公开了一个用于呈现相对简单的velocity模板的API。模板使用来包含几个其他模板,否则会写出从Java层传递给它的一些基本变量。模板位于JAR文件中,因此它们是从类路径加载的。我使用以下每个请求动态创建的velocity engine设置: 模板的多个部分对于每个请求来说是唯一的(资源用作对简单的Spring MVC控制器的响应),所以我需要禁用模板资

  • 问题内容: 我现在有点泡菜。我正在构建一个将从CGI后端获取数据的网页。我无法控制CGI后端,也无法控制服务器(因此无法控制mod_headers或mod_expires)。同样,由于脚本的参数,我无法向每个请求附加唯一值(例如’&089u0af0d98)。使用XmlHttpRequest对象的请求是AJAX。我尝试设置“ If-Modified-Since”和“ Cache-Control”请求

  • 我制作了一个html文件,在这里我使用JavaScript从文本文件中查看表列表。这里的问题是,每次我在平板电脑的PhoneGap中输入页面时,它都会显示旧内容。在我的电脑上试用时,我必须键入Ctrl F5以获取最新内容。 如何让我的html页面更新PhoneGap中的内容? 我找到了一些用于禁用缓存的元标记,但它对我不起作用。

  • 嗨,我需要禁用一个页面的tomcat缓存。 按页面控制服务器端缓存(Tomcat)? 这里的解决方案是我需要这样做: //设置标准HTTP/1.1无缓存头。回答setHeader(“缓存控制”、“私有、无存储、无缓存,必须重新验证”); //设置标准HTTP/1.0无缓存标头。response.set标头("Pragma","no-ache"); 但是我没有任何用于特定页面的servlet类。上面

  • 问题内容: 我想使用JPA(eclipselink)从数据库中获取数据。该数据库由许多其他来源更改,因此我想针对我执行的每个查找返回数据库。我已经阅读了许多有关禁用缓存的文章,但这似乎不起作用。有任何想法吗? 我正在尝试执行以下代码: 一==二是正确的,而我希望它是错误的。 我尝试将以下每个/所有内容添加到我的persistence.xml中 我也尝试过将@Cache注释添加到实体本身: 我误会了