我正在尝试缓存我的angularjs应用程序的html文件,遵循这个建议:https://gist.github.com/ProLoser/6181026。
我将像?v=123456790这样的动态缓存键附加到所有html文件( angular ui bootstrap使用的模板目录中的文件除外)。
对于他们自己的文件中的部分,例如app/views/customer/customer-history.html,这是完美的。然而,对于脚本形式的部分,例如<script type='text/ng-template' id='customer-history'>,找不到模板并发出服务器请求,导致404。
例如,localhost:8080/customer-history/?v=1234567890
我可以看到有问题的模板在$templateCache中。使用ng- customer-history的文件名是ie template,而单独的文件名是app/views/customer/customer-history.html路径。
这是一个很大的应用程序,所以通过并将它们全部移动到自己的文件等不会是微不足道的。我已经找遍了所有地方,我没有找到任何东西,所以我猜这是关于templateCache如何实现的一些基本问题。
我在构建过程中使用了gulp-templatecache插件,但是文档非常有限,我不认为问题出在那里。
我目前的解决方案是暂时跳过函数中有问题的模板,通过在$templateCache工厂上修饰一个inCache函数并在检查期间使用它来附加cacheKey来附加版本号。但我觉得这有点误入歧途。
发布于 2018-05-31 00:53:10
在这里回答我自己的问题。
因为脚本标记是加载到$templateCache中的包含html文件的一部分,所以脚本已经存在。当请求templateUrl时,它不应该有缓存破坏附录。
避免这一切的最简单方法是在"templates.js“上设置缓存破坏散列或字符串,或者构建过程的模板输出。这样,整个文件就会失效,并根据需要重新加载。
https://stackoverflow.com/questions/50358811
复制相似问题