Sinatra资产管道-can';不要使用链接到预编译的css
此处引用 嗨 我不能让它在生产中工作,但它在开发中工作正常 当我在生产环境中部署时,它会进行预编译,但不会加载CSS。 JS加载正常,但没有CSS。 因此,我有一个带有一些JS的html页面,但没有图像,没有CSS 这就是我的资产的组织方式: 在本地开发环境中,资产在public/assets/(使用Sinatra资产管道-can';不要使用链接到预编译的css,css,ruby,sass,sinatra,asset-pipeline,Css,Ruby,Sass,Sinatra,Asset Pipeline,此处引用 嗨 我不能让它在生产中工作,但它在开发中工作正常 当我在生产环境中部署时,它会进行预编译,但不会加载CSS。 JS加载正常,但没有CSS。 因此,我有一个带有一些JS的html页面,但没有图像,没有CSS 这就是我的资产的组织方式: 在本地开发环境中,资产在public/assets/(使用rake资产:precompile)中预编译 在Prod env中,capistrano任务的配置方式如下: after 'deploy:finishing', :finalize_upda
rake资产:precompile
)中预编译
在Prod env中,capistrano任务的配置方式如下:
after 'deploy:finishing', :finalize_update do
on roles(:web), in: :sequence do
execute(:chmod, '-R g+w', release_path) if fetch(:group_writable, true)
within release_path do
execute :rake, "assets:precompile RACK_ENV=production"
execute :rake, "assets:clean RACK_ENV=production"
end
end
end
Sinatra应用程序(比如myapp.rb)
application.scss
@import "bootstrap/variables";
@import "bootstrap/mixins";
...
...
@import "layout";
布局:
%link{ href: '/assets/application.css', rel: 'stylesheet' }
...
%script{ src:'//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'}
%script{ src: '//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js' }
%script{ src: '/assets/app.js' }
耙子:
require 'sinatra/asset_pipeline/task'
require './lib/myapp'
Sinatra::AssetPipeline::Task.define! Novagile
我是错过了一些简单而明显的东西,还是一个恶毒的配置技巧?:'(很难说到底出了什么问题。显然,您的布局或视图缺少源代码。
请看一看。我只能猜测,您必须自己处理环境(
生产
或开发
)。我上面的例子是,您可能会感兴趣。好的,我不确定这是什么把戏:
我从gem文件中删除了gem'sass'(compass仍然存在)
我使用了链轮帮助器和从不ActionView::helpers
(比如样式表\链接\标记或样式表\标记)
我对指南针(生成的精灵)和链轮(之前或之后重命名thoses文件)有一个小问题,但现在一切正常
compass使用生成的图像\u dir
compass配置选项解决,该选项的值为放置生成精灵的目录。尝试过,但没有改变:(当我认为它应该被编译后的散列/标记引用时,助手总是生成一个。我尝试过简单的直接访问,这里它是=stylesheet_tag'/assets/application.css',其他助手也没有帮助。在专用服务器和heroku上尝试过,同样的结果,没有css。在开发中仍然有效。God注释很难看。你呢你100%确定你的应用程序处于生产模式吗?很抱歉,我这么问,但是根据你的评论,这种行为非常奇怪。添加一些调试输出,环境变量在暂存和生产中都正常。在一些测试之后,自定义JS没有加载,是CDN one(正常)让我认为JS加载了。编译s直到确定,但仍然没有CSS。当我硬访问编译的CSS时,它就在这里。只是帮助者没有得到它!:(
%link{ href: '/assets/application.css', rel: 'stylesheet' }
...
%script{ src:'//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'}
%script{ src: '//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js' }
%script{ src: '/assets/app.js' }
require 'sinatra/asset_pipeline/task'
require './lib/myapp'
Sinatra::AssetPipeline::Task.define! Novagile