我构建了简单的Rails应用程序,并使用capistrano将其部署在Amazon EC2实例上
它使用了bower安装的一些资产(我使用过bower_components目录),我已将其导入到vendor / assets目录中。
我可以通过添加' bower_components'将它们导入到application.js和application.css中。目录到Rails资产根目录。
Rails.application.config.assets.paths<< Rails.root.join("供应商","资产"," bower_components")
在当地环境中运作良好 但是,我已经将它部署在亚马逊EC2上,来自凉亭的资产尚未加载。 我已经跟踪了问题,这是我的代码:
@import "Ionicons/css/ionicons.css"
@import "animate.css/animate.css"
@import "bootstrap/dist/css/bootstrap.css"
@import "bootstrap-select/dist/css/bootstrap-select.css"
@import "bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.css"
@import "bootstrap-tagsinput/dist/bootstrap-tagsinput.css"
@import "font-awesome/css/font-awesome.css"
@import "ionrangeslider/css/ion.rangeSlider.css"
这是我的application.css.sass 当在本地环境中工作时,它们(bower_components中的样式)可以导入,因为bower_components也是资产的根目录。 在Amazon EC2实例上使用nginx时,资产根目录由nginx配置设置,如下所示:
server {
listen 80 default_server deferred;
# server_name example.com;
root /home/ubuntu/apps/datraks/current/public;
access_log /home/ubuntu/apps/datraks/current/log/nginx.access.log;
error_log /home/ubuntu/apps/datraks/current/log/nginx.error.log info;
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
root /home/ubuntu/datraks/current/public;
}
nginx只检查应用的资产公共文件夹,因此无法从application.css.sass导入供应商目录中的资产
你想帮助我吗?有没有解决方法可以正确解决这个问题?