Apache服务器加载不存在目录下的Sass文件问题求助
问题解析与解决方案
别担心,这个情况其实很常见,我来给你拆解清楚:
为什么浏览器会显示不存在的source/_global.sass路径?
你在调试工具里看到的这个路径,并不是服务器上真实存在的文件路径——这是Sass Source Map在起作用。
Sass是CSS预处理器,开发时开发者会写.sass/.scss文件,然后通过工具把这些文件编译成浏览器能直接识别的普通.css文件。为了方便调试(让开发者能在浏览器里直接看到样式对应的原Sass文件位置),编译过程中会生成一个.map后缀的sourcemap文件,这个文件里记录了编译后CSS代码和原Sass文件的对应关系。
浏览器读取到这个sourcemap后,就会在调试面板里显示原Sass文件的路径(也就是你看到的source/_global.sass),但这个路径是开发时的项目结构路径,不是你服务器上的实际路径,所以你服务器里没有source目录完全不影响网站运行。
当前网站能正常运行的原因
你的网站能正常跑,说明原开发者已经完成了Sass的编译工作——服务器上已经存在编译好的普通CSS文件,Apache只需要加载这些CSS文件就够了,完全不需要配置任何Sass相关的内容,也不需要source目录。
如果以后需要修改样式怎么办?
如果你之后要调整网站样式,可以按以下步骤操作:
- 安装Sass编译工具:在Debian 8服务器上,你可以通过apt安装Ruby版本的Sass:
sudo apt-get update sudo apt-get install ruby-sass - 找到编译后的CSS文件位置:先在你的网站目录里找一下,比如有没有
css、styles这类目录,里面的.css文件就是Sass编译后的结果。 - 手动编译Sass文件:假设编译后的CSS要放到
css/global.css,你可以运行命令:
如果你有多个Sass文件,也可以直接编译整个目录:sass sass/_global.sass css/global.csssass sass/:css/ - 验证修改:编译完成后刷新网站,样式修改就会生效,调试工具里依然会显示
source/_global.sass的路径,但你实际修改的是sass目录里的文件。
内容的提问来源于stack exchange,提问作者GemmaB89
相关产品推荐
相关产品推荐

