CI框架关于导航栏切换页面的问题

发布于 2022-09-04 00:47:00 字数 979 浏览 20 评论 0

环境

设计了一个如下的导航栏
clipboard.png

navbar下面则是正文内容.

需求

非常简单的一个设计想法就是: 点击上面的按钮(如about/blog等), main container会从后台加载前端页面.

原设计思路

使用的是CodeIgniter框架, 打算在前端用Ajax将导航栏的所有按钮进行绑定, 每一个按钮都会触发一个ajax请求. 后端专门写一个public function来处理前端ajax请求, 利用$this->load->view('xxx')完成对Main Container页面的重载, 并且实现php模块化(header.js/footer.js ..etc).

问题

由于每次加载的container不一样, 所用的静态文件例如css|javascript|img在不同的container中加载各不相同, 所以导致header和footer模板没办法统一. 如果把所有的静态资源都统一写在模板php中的话势必导致页面加载时间过长.

曾想过替代方案, 各个container都添加nav这个标签, 这样能保证各自加载不同的静态资源, 不过在成型之后的代码维护方面会比较繁琐, 而且代码重复不够高效.

所以想问一下有没有什么更优秀的解决方案??

补充

可能前面讲的不是很清楚, 已经找到了类似的答案: 德问
想要单页面动态load不同的view, 并加载不同的静态资源

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

左岸枫 2022-09-11 00:47:00

首先,如果你是做网站的话,我其实并不建议你这样做,如果将后台内容和前台样式绑定死了的话,那么随着后台的内容修改,前台样式必要需要动,也就失去了灵活性,失去了样式和内容分离。

其次,假如你就要那么任性,将内容和样式结合,那么我建议你可以直接把类似 <link <script <style 这种内容直接放到后台,和内容一起,比如:

<link href="style.css" rel="stylesheet" />
我是一个内容

最后,还有一种解决方案就是,你根据每个模板的不通,单独写出几个view,然后控制器中根据url路由的变化,判断是谁,渲染view,每个view里面有自己单独的样式,这样也可以

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文