【问题标题】:Using Appcache with CodeIgniter将 Appcache 与 CodeIgniter 一起使用
【发布时间】:2013-11-01 18:56:15
【问题描述】:

尝试让 Appcache 与 CI 一起工作几个小时,但仍然无法正常工作。

背景:

我正在使用 IIS 服务器。我已经通过将清单文件和需要缓存的php文件放在一个简单的文件夹中来测试Appcache,它工作正常,所以我很确定服务器环境很好。

说我要缓存下面的url

http://mydomain.com.au/myapp/index.php/test/index

这是我的 manifest.php (我不知道哪一个会起作用,所以我在 CACHE 下放了 2 行,它们都引用同一个视图文件)

<?php
    header('Content-Type: text/cache-manifest');
    echo "CACHE MANIFEST

    CACHE:
    index.php
    http://mydomain.com.au/myapp/index.php/test/index
    ";
?>

下面是我的视图文件(index.php)当然放在视图文件夹中

<!DOCTYPE HTML>
<html manifest="manifest.php">
  <body>
    this is a test
  </body>
</html>

问题是,我应该把这个清单文件放在哪里?我应该在 CACHE 下列出什么文件?如果我想将 appcache 与 CI 一起使用,我需要遵循什么例程吗?

我尝试将它放在同一个视图文件夹中,在公共文件夹(应用程序文件夹之外)中,但没有成功。

提前谢谢你。

【问题讨论】:

  • 致那些快乐的编辑,Appcache !== Apache。

标签: php codeigniter offline html5-appcache cache-manifest


【解决方案1】:

您可以只使用index() 方法创建Manifest 控制器,并使/index.php/manifest 返回CACHE MANIFEST 文档(带有适当的标题)。

然后将其包含在页面上

<html manifest="/myapp/index.php/manifest">

补充说明:

  • 应用缓存适用于 url,而不是文件 - 所以它不知道 index.php 和 index.php/index (etc) 是“同一个文件”。
  • 如果 html 文件包含清单,则该文件会自动缓存,因此您不必在 CACHE: 指令中明确包含该文件。 (您只需要显式列出额外的 css/js 文件等)
  • 在清单中,不要使用完整的 URL (http://…),只使用路径本身 (/myapp/index…)。李>
  • 我强烈建议您再次阅读应用程序缓存文档,以确保您正确理解了所有内容。要正常工作是一件非常棘手的事情。

【讨论】:

  • 非常彻底的答案。在我看到你的答案之前,我已经放弃了我可以在 CI 中做到这一点的任何希望,所以我创建了一个仅使用 ajax 来获取数据和 js 来呈现页面的 HTML/JS 应用程序嘿嘿......可能已经避免了编写 5000 行 js 代码的麻烦,如果用 PHP 来实现相对简单的东西。将为我的下一个项目做你的方式。非常感谢!
猜你喜欢
  • 2015-06-02
  • 2011-06-05
  • 2011-09-24
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
  • 2012-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多