Html Rails 4 sass应用程序文件不';无法读取导入的css文件
这是我的application.css.sass:Html Rails 4 sass应用程序文件不';无法读取导入的css文件,html,css,ruby-on-rails,twitter-bootstrap,heroku,Html,Css,Ruby On Rails,Twitter Bootstrap,Heroku,这是我的application.css.sass: @import "global.css.sass" @import "bootstrap.css" 当我在localhostapplication.css?body=1查看源代码时,我看到: @import url(bootstrap.css); #content-wrap { width: 90%; margin: 0 auto; } 因此global.css.sass包含以下内容: #content-w
@import "global.css.sass"
@import "bootstrap.css"
当我在localhostapplication.css?body=1查看源代码时,我看到:
@import url(bootstrap.css);
#content-wrap {
width: 90%;
margin: 0 auto; }
因此global.css.sass包含以下内容:
#content-wrap
width: 90%
margin: 0 auto
所以这是正确导入的,但不是bootstrap.css文件。它在本地主机上工作,因为它位于本地文件路径上。但是,在生产过程中,我的资产在aws上:
application-a0546f0315a891e8129e1f8e49eb7e45.css
当查看源代码时,内容与我的本地主机上的内容相同,但是路径上没有引导,因此该文件丢失,我想知道为什么它不全部捆绑在一个大的应用程序文件中,以下是我的资产相关配置
发展:
config.assets.compress = false
config.assets.digest = false
制作:
config.serve_static_assets = false
# Compress JavaScripts and CSS
config.assets.compress = true
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false
# Generate digests for assets URLs
config.assets.digest = true
我做错了什么?谢谢你的帮助
更新:
这是我的chrome控制台中的示例位:
Request URL:http://my-bucket.s3.amazonaws.com/assets/bootstrap.css
Request Method:GET
Status Code:403 Forbidden
请查看来自SCS的
@导入采用要导入的文件名。默认情况下,它会查找Sass
文件直接导入,但在某些情况下
它将编译为CSS@import规则:
- 如果文件扩展名为.css。
- 如果文件名以http://开头李>
- 如果文件名是url()李>
- 如果@import有任何媒体查询
查看的usge和SCSS给出的@import
之间的差异很重要
在scss文件中写入此内容时:
@import "somefile.css"
文件somefile.css
将不会合并到scss编译文件中。SASS将把它编译成css@import规则,导致http请求在您的服务器上查找somefile.css
您可以根据需要将somefile.css
上传到正确路径下的服务器,或者只需将somefile.css
重命名为somefile.scss
并将导入更改为@import“somefile.scss”
。与此类似,SASS将把somefile.scss
合并到编译文件中。@import使用文件名进行导入。默认情况下,它会查找要直接导入的Sass文件,但在某些情况下,它会编译为CSS@import规则
。你的主机上有404吗?我认为bootstrap.css没有在您的生产环境中发布。懒惰的解决方案是重构到bootstrap.scss
,并将其合并到应用程序中。css
@NicoO感谢您的回复。是的,我得到403错误。无论错误类型如何,文件bootstrap.css都不在AWS上我认为bootstrap.css没有在您的生产环境中发布
是的,这是真的。由于扩展名.css
,不确定为什么它没有被捆绑到我的应用程序.css
中。您使用的是与sass函数不同的经典css。将bootstrap.css重命名为bootstrap.scss(在文件和导入中),它应该可以工作