我正在使用我的rails 5.1 app纱线(不是webpacker,只是默认的资产管道).
在开发环境中运行本地服务器,我的资产没有遇到任何问题.
但是一旦我预编译我的资产(环境无关紧要)或让Heroku打包我的资产,我从我的application.sass文件中导入的所有样式表(节点模块)都不再起作用了.
这种行为的原因是sass将所有文件编译成一个输出文件,但由于某种原因似乎错过了@import包含节点模块的语句并分别加载这些文件.
所以这:
@import "components/index.sass"
@import "nodemodule/nodemodule.css"
Run Code Online (Sandbox Code Playgroud)
在开发中编译到这个:
// content of "components/index.sass"
// content of "nodemodule/nodemodule.css"
Run Code Online (Sandbox Code Playgroud)
在生产中:
// content of "components/index.sass"
@import "nodemodule/nodemodule.css"
Run Code Online (Sandbox Code Playgroud)
虽然node_module/nodemodule.css单独加载为资产,但浏览器无法解析它.Javascript工作正常.