是否有一种方法来加载css和/或javascript文件从外部的公共web目录?例如,在我的主机服务上,我有/public_html,但不希望这些文件存在于公共目录中,并希望它们存在于/system/application/view/中的兄弟目录/system中的公共目录之外的目录中(我使用codeigniter)
tpxzln5u1#
最终,JavaScript和样式表是在客户端处理的。因此,没有解决方案可以真正将您的JavaScript或CSS隐藏起来。一个可能的解决方案是通过PHP使用file_get_contents()加载所需的CSS/ Javascript文件,然后使用内联样式/脚本将其直接输出到页面。这并不能真正解决你的问题,隐藏的代码/样式从公众虽然它会给予你的选择过滤所有的代码和样式通过某种 Package 或模糊,虽然没有理由你不能这样做与您的静态文件(并在少得多的处理费用)
h43kikqp2#
是的--在某种程度上--Minifyhttp://code.google.com/p/minify/(http://code.google.com/p/minify/])]是一种方法。查看配置文件http://code.google.com/p/minify/source/browse/trunk/min/config.php(http://code.google.com/p/minify/source/browse/trunk/min/config.php])]的第39行。在这里,您将看到缩小的缓存位于Web根目录之外的位置。现在,我不知道源JS和CSS是否可以与该高速缓存位于同一目录。
ktecyv1j3#
没有一个面向公众的代理人。您需要file_get_contents()或include它们,然后将它们提供给您的页面。你不能只做../../system,然后得到DOCROOT。它们需要被浏览器处理,所以它们需要才能被访问。如果你想阻止人们以人类可读的方式查看你的源代码,请查看CSS minify和JS packer。当然,这些只是混淆代码。任何人都可以阅读你的JavaScript并查看它的功能。为什么你不想让人们读你的CSS或JavaScript?
file_get_contents()
include
../../system
gupuwyp24#
我知道你的意思twmulloy,在不同的地方有“视图”相关的信息似乎不一致。然而,考虑到JS和CSS文件是支持视图的资源,而不是视图本身的一部分。也就是说,你可以通过多种方式来实现你想要的,其中一种可能是编写一个控制器,它接受对你的JS/CSS资源的请求,并从相关的地方输出一个头和数据(一个视图文件,数据库,事实上任何地方)。然而,与只接受在根级别public_html. I的子文件夹中弹出文件的“不整洁”相比,这是低效的,像上面的许多评论者一样,觉得这是它的速度和适当性的最佳解决方案;只是有一个“资产”目录在同一级别的“系统”之一,与图像,css,js等内。您可以使用别名或虚拟文件夹,使事情感觉更好,为您...然而,还有第三种方法,有些库可以做一些你想要的事情,还有Minify的额外好处我知道的两个库分别是AssetLibPro和Carabiner,它们允许您指定资产路径(如你所愿),然后你加载你的JS和CSS文件(如果需要的话,可以使用组,例如屏幕,打印)。然后它们将所有相关的CSS/JS等作为一个文件提供;压缩,缩小,缓存...任何你需要的。
0pizxfdo5#
我知道有一种情况是必须这样做的。如果我有多个版本的文件,并且我不想在所有情况下都需要所有版本,那么最好将这些版本放在某个隐藏文件夹中,只加载我想要的版本。类似于CDN,但在自己的服务器上。
5条答案
按热度按时间tpxzln5u1#
最终,JavaScript和样式表是在客户端处理的。因此,没有解决方案可以真正将您的JavaScript或CSS隐藏起来。
一个可能的解决方案是通过PHP使用file_get_contents()加载所需的CSS/ Javascript文件,然后使用内联样式/脚本将其直接输出到页面。
这并不能真正解决你的问题,隐藏的代码/样式从公众虽然它会给予你的选择过滤所有的代码和样式通过某种 Package 或模糊,虽然没有理由你不能这样做与您的静态文件(并在少得多的处理费用)
h43kikqp2#
是的--在某种程度上--Minifyhttp://code.google.com/p/minify/(http://code.google.com/p/minify/])]是一种方法。
查看配置文件http://code.google.com/p/minify/source/browse/trunk/min/config.php(http://code.google.com/p/minify/source/browse/trunk/min/config.php])]的第39行。在这里,您将看到缩小的缓存位于Web根目录之外的位置。现在,我不知道源JS和CSS是否可以与该高速缓存位于同一目录。
ktecyv1j3#
没有一个面向公众的代理人。
您需要
file_get_contents()
或include
它们,然后将它们提供给您的页面。你不能只做
../../system
,然后得到DOCROOT。它们需要被浏览器处理,所以它们需要才能被访问。
如果你想阻止人们以人类可读的方式查看你的源代码,请查看CSS minify和JS packer。当然,这些只是混淆代码。任何人都可以阅读你的JavaScript并查看它的功能。
为什么你不想让人们读你的CSS或JavaScript?
gupuwyp24#
我知道你的意思twmulloy,在不同的地方有“视图”相关的信息似乎不一致。然而,考虑到JS和CSS文件是支持视图的资源,而不是视图本身的一部分。
也就是说,你可以通过多种方式来实现你想要的,其中一种可能是编写一个控制器,它接受对你的JS/CSS资源的请求,并从相关的地方输出一个头和数据(一个视图文件,数据库,事实上任何地方)。然而,与只接受在根级别public_html. I的子文件夹中弹出文件的“不整洁”相比,这是低效的,像上面的许多评论者一样,觉得这是它的速度和适当性的最佳解决方案;只是有一个“资产”目录在同一级别的“系统”之一,与图像,css,js等内。您可以使用别名或虚拟文件夹,使事情感觉更好,为您...
然而,还有第三种方法,有些库可以做一些你想要的事情,还有Minify的额外好处我知道的两个库分别是AssetLibPro和Carabiner,它们允许您指定资产路径(如你所愿),然后你加载你的JS和CSS文件(如果需要的话,可以使用组,例如屏幕,打印)。然后它们将所有相关的CSS/JS等作为一个文件提供;压缩,缩小,缓存...任何你需要的。
0pizxfdo5#
我知道有一种情况是必须这样做的。如果我有多个版本的文件,并且我不想在所有情况下都需要所有版本,那么最好将这些版本放在某个隐藏文件夹中,只加载我想要的版本。类似于CDN,但在自己的服务器上。