如何在共享主机上运行SASS或LESS?

时间:2012-11-27 21:47:18

标签: css3 sass less

我想在CSS中使用变量,因此我考虑使用SASSLESS来实现此目的。

我的问题是,我将在共享主机上部署项目,具有命令行访问权限的专用主机。

我也不喜欢用户使用Javascript在浏览器中编译CSS文件的想法。 (如果他们禁用了Javascript怎么办?)

处理这种情况的最佳方法是什么?我到底要不得不诉诸普通的旧CSS?我希望不是......

8 个答案:

答案 0 :(得分:14)

在开发计算机上编译Sass或Less,并将已编译的缩小的CSS推送到您的服务器。

答案 1 :(得分:5)

你有一个矛盾。

如果您希望完全控制您的网站,您应该拥有自己的服务器,无论是专用服务器还是虚拟服务器。这可以让你安装和运行你想要的任何东西。

如果您不允许在共享主机上安装和运行自定义软件,那么您无法即时编译SASS。在将代码上传到服务器之前,您必须编译SASS。

如果您对在本地编译SASS的必要性不满意,可以使用Capistrano或可能的IDE等部署技术自动执行此操作。部署工具的选择在很大程度上取决于您的开发和托管环境。

另一个选择是在客户端的浏览器中本地编译LESS。见http://lesscss.org/#usage。但我不建议这有两个原因:

  1. 这会使您的网站不易访问(具有讽刺意味!)。您不应该依赖沉重的JS来为您的网站应用基本样式。
  2. 由于多种原因,SASS比LESS更受欢迎,其中主要是令人敬畏的Compass工具包。

答案 2 :(得分:3)

首先,CSS预处理器是一种开发工具,可以让您轻松管理CSS文件 - 它们不会在浏览器中运行。

其次,在共享或专用主机上运行预处理器的唯一区别在于您是否能够首先安装预处理器。


修改我的旧答案:一些CSS预处理确实可以在浏览器中运行。例如,Lesscss将请求并编译更少的工作表到CSS并更新它们。这是一个非常宝贵的开发助手,但绝对不是你想在生产环境中做的事情。

答案 3 :(得分:2)

大多数共享主机不允许您将自定义gem安装到默认目录,因为它通常存在于用户的主文件夹之外,因此位于用户的可写目录之外。

我在共享主机(1and1托管)上必须做的是 - [这些说明] - 在共享主机上安装自定义宝石。您需要对共享托管服务器进行shell访问才能执行必要的步骤。您还需要确保更新您正在运行的命令以处理最新版本的RubyGems(本文发布时为2.0.3)。

完成初始设置后,只需运行gem install sass命令即可​​。然后转到存储CSS文件的目录并运行sass --watch以开始使用SASS生成CSS文件。

答案 4 :(得分:1)

两个选项:

1)LESS / SASS预处理器(推荐)

OP没有提到哪些服务器端处理能力可用,这可能会缩小选项范围,但你想要的是服务器端LESS / SASS,理想情况下还可以缩小和缓存生成的CSS。

如果你有PHP可用,你可以使用lessphp;较旧的项目是github.com/Incenteev/lessphp,但不要使用该项目已经停滞,而是使用github.com/oyejorge/less.php,它有很多东西可以提供并且有很好的文档记录。

对于SASS,有github.com/richthegeek/phpsass

2)LESS.js SASS.js(+)

查看client side usage部分中的less.js页面,简单但不是生产解决方案。

SASS JS实施起来比较棘手,似乎已经做了很多尝试,我无法保证,但这个项目看起来非常活跃:medialize/sass.js

+注意:这对于实时环境来说是一个糟糕的解决方案,因为浏览器必须下载完整的LESS / SASS文件,编译和渲染;大多数现代浏览器都可以处理它,但效率非常低。仅用于您的开发环境或模型。

答案 5 :(得分:1)

虽然它不是SASS或LESS,但CSS-Crush具有所有标准的预处理器功能。我在共享主机上的自己的项目中广泛使用它,没有任何服务器端安装。

唯一的要求是PHP,这是任何体面的主机都给出的。

答案 6 :(得分:1)

Tintin81,只需在google中键入php sass / less编译器并使用第一个结果,如scssphp或lessphp

http://leafo.net/scssphp/

http://leafo.net/lessphp/

它会随时随地将你的scss文件编译成css,等等。 易于实现,源scss文件保留在项目中。它可以在线或在您当地的环境中使用。

我无法相信这里给出了多少愚蠢无益的答案,而不是简单回答问题。

答案 7 :(得分:0)

这可能有所帮助 - 我正在为同一目的探索它 http://www.dev-metal.com/compile-sass-to-css-with-pure-php-automatically/

这是一个通过网络启动的脚本,然后继续无限期地运行以查找过时的scss文件。

更新:它运行良好,但主机似乎将脚本视为失控并将其杀死。所以我编辑了php-sass-watcher.php来评论循环,并添加了echo "Finished compiling " . date(DateTime::RSS);。然后在我的eclipse中,我打开一个Web浏览器视图,并在每次更改时运行URL,类似于在命令行上运行编译器。