代码之家  ›  专栏  ›  技术社区  ›  skilleo

从非公共目录加载css或javascript

  •  1
  • skilleo  · 技术社区  · 14 年前

    有没有办法从公共web目录外加载css和/或javascript文件?

    4 回复  |  直到 12 年前
        1
  •  1
  •   Christopher Altman    14 年前

    是的——在某种程度上——而且 缩小 [ http://code.google.com/p/minify/] 这是一种方法。

    http://code.google.com/p/minify/source/browse/trunk/min/config.php] . 在这里,您将看到缩小的缓存位于web根目录之外的位置。现在,我不知道源JS和CSS是否可以和缓存放在同一个目录中。

        2
  •  4
  •   Andy Baird    14 年前

    最终,Javascript和样式表在客户端进行处理。因此,没有任何解决方案能够真正对公众隐藏javascript或CSS。

    一种可能的解决方案是通过PHP加载所需的CSS/Javascript文件,使用file\u get\u contents()之类的内容,然后使用内联样式/脚本将其直接输出到页面。

    但这并不能真正解决对公众隐藏代码/样式的问题。它可以让您选择通过某种打包器或模糊程序过滤所有代码和样式,尽管您没有理由不能对静态文件这样做(而且处理费用要少得多)

        3
  •  1
  •   alex    14 年前

    你需要 file_get_contents() include 然后把它们送到你的网页上。

    你不能就这么做 ../../system

    它们需要由浏览器处理,所以 需要 易于接近。

    CSS minify JS packer . 当然,这些只是混淆了代码。任何有决心的人都可以阅读你的JavaScript,看看它能做什么。

    你为什么不想让别人读你的CSS或JavaScript呢?

        4
  •  0
  •   Elliot    14 年前

    我知道你的意思,在不同的地方有“视图”相关的信息似乎不一致。但是,请考虑JS和CSS文件是支持视图的资源,而不是视图本身的一部分。

    也就是说,你可以通过多种方式实现你想要的。一种可能是编写一个控制器,它接受对JS/CSS资产的请求,并从相关位置(视图文件、数据库、任何实际位置)输出头和数据。然而,与仅仅接受将文件弹出到根级别public\uhtml的子文件夹的“不整洁”相比,这是低效的。一、 像上面的许多评论者一样,认为这是最好的解决方案,因为它的速度和适当性;只是有一个'资产'目录在同一级别的'系统'之一,与图像,css,js等内。你可以使用一个别名或虚拟文件夹,让你感觉更好。。。

    然而,还有第三种方法。有些库做的事情和你想要的一样,还有缩小(来自公认的答案)和压缩,或者你喜欢的任何东西。我所知道的两个库称为AssetLibPro和Carabiner,它们允许您指定一个资产路径(根据需要),然后加载JS和CSS文件(使用screen、print等组)。然后将所有相关的CSS/JS等作为一个文件提供;压缩,缩小,缓存。。。你需要什么都行。