Sinatra의 페이지 문서에 나와있는 것처럼 Sinatra와 함께 스프로킷을 사용하고 있지만 제대로 작동하지 않습니다.Sinatra 자산 파이프 라인이 작동하지 않습니다.
localhost:4567
으로 이동하면 페이지가 올바르게로드되지만 스타일이 없습니다. localhost:4567/assets/app.css
으로 가면 찾을 수없는 오류가 발생합니다. 스프로킷을 사용하는 방식에서 제가 누락되거나 잘못 된 것이 무엇인지 궁금합니다. app.css
의
├── assets
│ ├── css
│ │ ├── app.css
│ │ ├── base.css
│ │ └── normalize.css
├── bin
│ └── app
├── lib
│ ├── app_assets.rb
│ └── main.rb
├── spec
│ ├── spec_helper.rb
│ └── main_spec.rb
├── views
│ └── index.erb
├── Gemfile
├── Gemfile.lock
├── Rakefile
├── .rspec
└── .ruby-version
내용은 다음과 같습니다 : app_assets.rb
의
//= require normalize
//= require base
내용은 다음과 같습니다 lib/main.rb
의
module AppAssets
def self.environment root_path
environment = Sprockets::Environment.new root_path
environment.append_path './assets/css/'
environment
# get assets
get '/assets/*' do
env['PATH_INFO'].sub!('/assets', '')
settings.environment.call(env)
end
end
end
내용은 다음과 같습니다
이
내 폴더 구조require 'sinatra'
require 'sprockets'
require 'app_assets'
class Main < Sinatra::Base
set :views, "#{settings.root}/../views"
get '/' do
erb :index
end
end
파일 views/index.erb
이 라인이 포함
<link rel="stylesheet" href="assets/app.css">
그리고 bin/app
의 내용은 다음과 같습니다
$ bin/app
이
에게 어떤 도움이 될 것이다 : I 입력을 실행
#!/usr/bin/env ruby
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
require 'sinatra'
require 'sprockets'
require 'app_assets'
require 'main'
Main.run!
고맙다, 나는 틀린 무엇인가 만들었다라고 확신한다. 그러나 나는 무엇을 볼 수 없다. 아무도 그것을 발견 할 수 있습니까?
감사합니다 :
이시나와 톱니 사용에 대한시나 조리법 기사가있다 :처럼 그 파일이 보인다! 그 문제를 해결했습니다. 저는 Sinatra를 처음 접했고 포함 된 방법에 대해 알지 못했습니다. 게시 한 링크를 따라했지만 다른 모듈에서 재사용 할 수 있도록 자체 모듈에 자산을 갖고 싶었습니다. –