fex-team / fis-parser-sass

A parser plugin for fis to compile sass file.
MIT License
16 stars 12 forks source link

sass 中的图片不能写相对路径? #27

Closed nimoc closed 9 years ago

nimoc commented 9 years ago

a.scss

.p-avatar{
    background:url(../img/avatar.jpeg);
}

a.css

.p-avatar{background:url(/img/avatar.jpeg)}
2betop commented 9 years ago

故意的,你发布的时候带 md5 试试。

nimoc commented 9 years ago

我目前是使用

fis release -ow --dest ../dist

暂时还没用到 md5 版本控制

目录结构在这里 https://github.com/nimojs/rains/tree/master/src

我在开发阶段 /img/avatar.jpeg 是没有资源的。

另外: 我没有用 fis server 是用的自己的 node server

2betop commented 9 years ago

没有这个图片就替换了路径,那应该是 bug ,我明天看看

nimoc commented 9 years ago

:ok_hand: 感谢,为方便调试我已将相关代码上传到 rains 中

image

git clone https://github.com/nimojs/rains.git
cd rains/src
fis release -ow --dest ../dist

启动 fis 后在 rains/ 目录运行

node app

然后打开 http://127.0.0.1:18080/examples/index.html 查看上图效果


另外

nodeajax 是我们团队依赖的数据模拟环境,一般我们都是用 nodemon app.js 启动(需要检测app.js 文件修改后自动重启)。 有没有什么合适的方法能与fis 结合,让我只需要一行命令就启动fis 和 nodeajax 。

fouber commented 9 years ago

@nimojs

写一个fis的command插件启动你的server

nimoc commented 9 years ago

@fouber @2betop 感谢二位,我找到了 https://github.com/xiangshouding/fisp-command-init

我们server的功能是提供AJAX和后端模板引擎的渲染数据模拟,需要实时编码,实时重启server。所以独立使用情况下用 nodemon app.js 启动server,当 app.js 修改后自动重启server(有时重启后需要查看终端的语法报错信息)

对于这种 需要 watch file change 重启 server 的需求,我应该如何集成到 fis 中去?

我希望配置一些前端构建命令,再结合自己的 server。最终封装一套基于 Handlebars 模板引擎类似 fis-plus 让前端写后端模板的解决方案。

2betop commented 9 years ago

我在开发阶段 /img/avatar.jpeg 是没有资源的。

这个资源明明就有啊,找到了所以才会替换路径的。至于为什么要替换路径,主要是考虑到资源合并, md5 等一系列功能的。之前有专门的帖子说过,这里就不多说了。

nimoc commented 9 years ago

我编译后的css是

.p-name{background:url(/img/avatar.jpeg) gray}

/dist/img/avatar.jpeg 里面是存在的,但是我的 server static路径是 /

似乎明白了,你的意思是我将 server static 路径配置改成 dist/ ?

$.run({
   static: './dist'
})
nimoc commented 9 years ago

@2betop 接着这个问题请教: 我希望将 src/ 构建到 dist/ 目录下,而后端 server 不方便配置静态资源根目录为 dist/ 。我通过

fis.config.merge({
    roadmap : {
        //所有静态资源文件都增加 /dist 作为前缀
        domain : '/dist'
    }
})
$ fis release --domains -d ../dist

最终编译的文件是

 background: url(/dist/img/loading-128x128.gif) no-repeat center;

请问 通过设置 domain 的方式加上 /dist 前缀 这种方式有什么不妥的地方?会影响到其他功能么?

2betop commented 9 years ago

Domain 就是给所有路径加前缀,然后你 release 到的也是 dist 目录,服务端的 Document Root 设置的是 dist 上级目录就没问题。

nimoc commented 9 years ago

:ok_hand: 感谢