17

我想在 CSS 中使用变量,因此我正在考虑为此使用SASSLESS 。

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

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

处理这种情况的最佳方法是什么?最后我是否必须求助于普通的旧 CSS?我希望不是...

4

8 回答 8

14

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

于 2012-11-27T22:42:45.900 回答
6

你有一个矛盾。

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

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

如果您对本地编译 SASS 的必要性不满意,您可以使用Capistrano之类的部署技术或可能是您的 IDE 将其自动化。部署工具的选择很大程度上取决于您的开发和托管环境。

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

  1. 这会使您的网站更难访问(真是讽刺!)。您不应该依赖繁重的 JS 将基本样式应用到您的网站。
  2. SASS 优于 LESS 有几个原因,其中主要是很棒的 Compass 工具包。
于 2012-11-30T14:19:39.633 回答
3

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

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


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

于 2012-11-27T22:47:34.567 回答
2

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

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

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

于 2013-04-17T06:04:04.503 回答
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 (+)

看看客户端使用部分中的less.js页面,简单但不是生产解决方案。

SASS JS 实现更棘手,似乎已经进行了多次尝试,我不能保证,但这个项目看起来很活跃:medialize/sass.js

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

于 2014-08-04T12:47:07.080 回答
1

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

唯一的要求是 PHP,任何体面的主机都需要它。

于 2016-10-09T07:17:27.313 回答
1

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

http://leafo.net/scssphp/

http://leafo.net/lessphp/

它会在旅途中将你的 scss 文件编译成 css,并带有缓存等等。易于实现,源 scss 文件保留在项目中。它将在线或在您的本地环境中工作。

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

于 2017-08-03T07:39:15.143 回答
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,类似于在命令行上运行编译器。

于 2015-08-27T13:14:19.737 回答