Getting Started Tutorial Error: uncaught throw “Cannot file target sproutcore for entry lib/index.rhtml”

StackOverflow https://stackoverflow.com/questions/9033009

  •  20-04-2021
  •  | 
  •  

Domanda

I'm using Mac OS-X Lion, have Ruby on Rails 3.0 already preinstalled and doing the Getting Started Tutorial for Sproutcore (http://sproutcore.com/guides/getting_started.html). When I run the server and hit: http://localhost:4020/todos. I get the follow error in my terminal:

   bash-3.2# sc-server 
    SproutCore v1.7.1.beta Development Server
    Allowing access only from IPs: 127.0.0.1. Use --allow-from-ips='*.*.*.*' to allow all
    Starting server at http://0.0.0.0:4020 in debug mode
    To quit sc-server, press Control-C
>> Thin web server (v1.2.11 codename Bat-Shit Crazy)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:4020, CTRL+C to stop
WARN 22:18:34.009 ~ Could not find target sproutcore/core_foundation that is required by /todos 
WARN 22:18:34.009 ~ Could not find target sproutcore/empty_theme that is required by /todos 
WARN 22:18:34.009 ~ Could not find target sproutcore/core_foundation that is required by /todos 
ArgumentError: uncaught throw "Cannot file target sproutcore for entry lib/index.rhtml"
    /usr/local/sproutcore/lib/sproutcore/models/manifest.rb:316:in `throw'
    /usr/local/sproutcore/lib/sproutcore/models/manifest.rb:316:in `entry_for'
    /usr/local/sproutcore/lib/sproutcore/builders/html.rb:55:in `layout_entry'
    /usr/local/sproutcore/lib/sproutcore/builders/html.rb:61:in `layout_path'
    /usr/local/sproutcore/lib/sproutcore/builders/html.rb:106:in `render'
    /usr/local/sproutcore/lib/sproutcore/builders/html.rb:122:in `build'
    /usr/local/sproutcore/lib/sproutcore/builders/base.rb:35:in `build'
    /usr/local/sproutcore/lib/buildtasks/build.rake:68:in `block (2 levels) in define!'
    /usr/local/sproutcore/lib/sproutcore/buildfile/task.rb:231:in `call'
    /usr/local/sproutcore/lib/sproutcore/buildfile/task.rb:231:in `block in execute'
    /usr/local/sproutcore/lib/sproutcore/buildfile/task.rb:226:in `each'
    /usr/local/sproutcore/lib/sproutcore/buildfile/task.rb:226:in `execute'
    /usr/local/sproutcore/lib/sproutcore/buildfile/task.rb:183:in `invoke_with_call_chain'
    /usr/local/sproutcore/lib/sproutcore/buildfile/task.rb:140:in `invoke'
    /usr/local/sproutcore/lib/sproutcore/buildfile.rb:214:in `invoke'
    /usr/local/sproutcore/lib/sproutcore/models/manifest_entry.rb:347:in `build_to'
    /usr/local/sproutcore/lib/sproutcore/models/manifest_entry.rb:259:in `build!'
    /usr/local/sproutcore/lib/sproutcore/rack/builder.rb:129:in `block (2 levels) in call'
    /usr/local/sproutcore/lib/sproutcore.rb:161:in `profile'
    /usr/local/sproutcore/lib/sproutcore/rack/builder.rb:128:in `block in call'
    <internal:prelude>:10:in `synchronize'
    /usr/local/sproutcore/lib/sproutcore/rack/builder.rb:89:in `call'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/cascade.rb:23:in `block in call'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/cascade.rb:22:in `each'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/cascade.rb:22:in `call'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/showexceptions.rb:24:in `call'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/recursive.rb:43:in `_call'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/recursive.rb:38:in `call'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/conditionalget.rb:25:in `call'
    /usr/local/sproutcore/lib/sproutcore/rack/restrict_ip.rb:59:in `call'
    /usr/local/sproutcore/lib/sproutcore/rack/service.rb:117:in `call'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/connection.rb:84:in `block in pre_process'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/connection.rb:82:in `catch'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/connection.rb:82:in `pre_process'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/connection.rb:57:in `process'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/connection.rb:42:in `receive_data'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/eventmachine-1.0.0.beta.4/lib/eventmachine.rb:179:in `run_machine'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/eventmachine-1.0.0.beta.4/lib/eventmachine.rb:179:in `run'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/backends/base.rb:61:in `start'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/server.rb:159:in `start'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/handler/thin.rb:13:in `run'
    /usr/local/sproutcore/lib/sproutcore/rack/service.rb:93:in `start'
    /usr/local/sproutcore/lib/sproutcore/tools/server.rb:65:in `server'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thor-0.14.6/lib/thor/task.rb:22:in `run'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thor-0.14.6/lib/thor/invocation.rb:118:in `invoke_task'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thor-0.14.6/lib/thor.rb:263:in `dispatch'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thor-0.14.6/lib/thor/base.rb:389:in `start'
    /usr/local/sproutcore/lib/sproutcore/tools.rb:452:in `start'
    /usr/local/sproutcore/lib/sproutcore/tools.rb:30:in `invoke'
    /usr/bin/sc-server:11:in `<main>'
ArgumentError: uncaught throw "Cannot file target sproutcore for entry lib/index.rhtml"
    /usr/local/sproutcore/lib/sproutcore/models/manifest.rb:316:in `throw'
    /usr/local/sproutcore/lib/sproutcore/models/manifest.rb:316:in `entry_for'
    /usr/local/sproutcore/lib/sproutcore/builders/html.rb:55:in `layout_entry'
    /usr/local/sproutcore/lib/sproutcore/builders/html.rb:61:in `layout_path'
    /usr/local/sproutcore/lib/sproutcore/builders/html.rb:106:in `render'
    /usr/local/sproutcore/lib/sproutcore/builders/html.rb:122:in `build'
    /usr/local/sproutcore/lib/sproutcore/builders/base.rb:35:in `build'
    /usr/local/sproutcore/lib/buildtasks/build.rake:68:in `block (2 levels) in define!'
    /usr/local/sproutcore/lib/sproutcore/buildfile/task.rb:231:in `call'
    /usr/local/sproutcore/lib/sproutcore/buildfile/task.rb:231:in `block in execute'
    /usr/local/sproutcore/lib/sproutcore/buildfile/task.rb:226:in `each'
    /usr/local/sproutcore/lib/sproutcore/buildfile/task.rb:226:in `execute'
    /usr/local/sproutcore/lib/sproutcore/buildfile/task.rb:183:in `invoke_with_call_chain'
    /usr/local/sproutcore/lib/sproutcore/buildfile/task.rb:140:in `invoke'
    /usr/local/sproutcore/lib/sproutcore/buildfile.rb:214:in `invoke'
    /usr/local/sproutcore/lib/sproutcore/models/manifest_entry.rb:347:in `build_to'
    /usr/local/sproutcore/lib/sproutcore/models/manifest_entry.rb:259:in `build!'
    /usr/local/sproutcore/lib/sproutcore/rack/builder.rb:129:in `block (2 levels) in call'
    /usr/local/sproutcore/lib/sproutcore.rb:161:in `profile'
    /usr/local/sproutcore/lib/sproutcore/rack/builder.rb:128:in `block in call'
    <internal:prelude>:10:in `synchronize'
    /usr/local/sproutcore/lib/sproutcore/rack/builder.rb:89:in `call'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/cascade.rb:23:in `block in call'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/cascade.rb:22:in `each'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/cascade.rb:22:in `call'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/showexceptions.rb:24:in `call'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/recursive.rb:43:in `_call'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/recursive.rb:38:in `call'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/conditionalget.rb:25:in `call'
    /usr/local/sproutcore/lib/sproutcore/rack/restrict_ip.rb:59:in `call'
    /usr/local/sproutcore/lib/sproutcore/rack/service.rb:117:in `call'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/connection.rb:84:in `block in pre_process'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/connection.rb:82:in `catch'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/connection.rb:82:in `pre_process'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/connection.rb:57:in `process'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/connection.rb:42:in `receive_data'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/eventmachine-1.0.0.beta.4/lib/eventmachine.rb:179:in `run_machine'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/eventmachine-1.0.0.beta.4/lib/eventmachine.rb:179:in `run'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/backends/base.rb:61:in `start'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/server.rb:159:in `start'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/handler/thin.rb:13:in `run'
    /usr/local/sproutcore/lib/sproutcore/rack/service.rb:93:in `start'
    /usr/local/sproutcore/lib/sproutcore/tools/server.rb:65:in `server'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thor-0.14.6/lib/thor/task.rb:22:in `run'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thor-0.14.6/lib/thor/invocation.rb:118:in `invoke_task'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thor-0.14.6/lib/thor.rb:263:in `dispatch'
    /usr/local/sproutcore/bundle/ruby/1.9.1/gems/thor-0.14.6/lib/thor/base.rb:389:in `start'
    /usr/local/sproutcore/lib/sproutcore/tools.rb:452:in `start'
    /usr/local/sproutcore/lib/sproutcore/tools.rb:30:in `invoke'
    /usr/bin/sc-server:11:in `<main>'

Here's the log when I hit the page:

    ArgumentError at /todos
    uncaught throw "Cannot file target sproutcore for entry lib/index.rhtml"

Ruby    /usr/local/sproutcore/lib/sproutcore/models/manifest.rb: in throw, line 316
Web GET localhost/todos
Jump to:
GETPOSTCookiesENV
Traceback (innermost first)

/usr/local/sproutcore/lib/sproutcore/models/manifest.rb: in throw
          throw "Cannot file target #{target_name} for entry #{filename}"...
/usr/local/sproutcore/lib/sproutcore/models/manifest.rb: in entry_for
          throw "Cannot file target #{target_name} for entry #{filename}"...
/usr/local/sproutcore/lib/sproutcore/builders/html.rb: in layout_entry
      @manifest.entry_for(@layout) || @manifest.entry_for(@layout, :hidden => true)...
/usr/local/sproutcore/lib/sproutcore/builders/html.rb: in layout_path
      entry = layout_entry...
/usr/local/sproutcore/lib/sproutcore/builders/html.rb: in render
      if self.layout_path.nil?...
/usr/local/sproutcore/lib/sproutcore/builders/html.rb: in build
      writelines dst_path, [self.render]...
/usr/local/sproutcore/lib/sproutcore/builders/base.rb: in build
        new(entry).build(dst_path)...
/usr/local/sproutcore/lib/buildtasks/build.rake: in block (2 levels) in define!
    SC::Builder::Html.build env[:entry], env[:dst_path]...
/usr/local/sproutcore/lib/sproutcore/buildfile/task.rb: in call
          act.call(self, args)...
/usr/local/sproutcore/lib/sproutcore/buildfile/task.rb: in block in execute
          act.call(self, args)...
/usr/local/sproutcore/lib/sproutcore/buildfile/task.rb: in each
      @actions.each do |act|...
/usr/local/sproutcore/lib/sproutcore/buildfile/task.rb: in execute
      @actions.each do |act|...
/usr/local/sproutcore/lib/sproutcore/buildfile/task.rb: in invoke_with_call_chain
        execute(task_args) if needed?...
/usr/local/sproutcore/lib/sproutcore/buildfile/task.rb: in invoke
      invoke_with_call_chain(task_args, InvocationChain::EMPTY)...
/usr/local/sproutcore/lib/sproutcore/buildfile.rb: in invoke
      self[task_name].invoke(consts)...
/usr/local/sproutcore/lib/sproutcore/models/manifest_entry.rb: in build_to
      buildfile.invoke self[:build_task],...
/usr/local/sproutcore/lib/sproutcore/models/manifest_entry.rb: in build!
      build_to self[:build_path]...
/usr/local/sproutcore/lib/sproutcore/rack/builder.rb: in block (2 levels) in call
                entry.clean!.build!...
/usr/local/sproutcore/lib/sproutcore.rb: in profile
      yield...
/usr/local/sproutcore/lib/sproutcore/rack/builder.rb: in block in call
              SC.profile("PROFILE_BUILD") do...
<internal:prelude>: in synchronize
/usr/local/sproutcore/lib/sproutcore/rack/builder.rb: in call
        project_mutex.synchronize do...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/cascade.rb: in block in call
        result = app.call(env)...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/cascade.rb: in each
      @apps.each do |app|...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/cascade.rb: in call
      @apps.each do |app|...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/showexceptions.rb: in call
      @app.call(env)...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/recursive.rb: in _call
      @app.call(env.merge('rack.recursive.include' => method(:include)))...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/recursive.rb: in call
      dup._call(env)...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/conditionalget.rb: in call
        status, headers, body = @app.call(env)...
/usr/local/sproutcore/lib/sproutcore/rack/restrict_ip.rb: in call
          return @app.call(env)...
/usr/local/sproutcore/lib/sproutcore/rack/service.rb: in call
      def call(env); @app.call(env); end...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/connection.rb: in block in pre_process
        response = @app.call(@request.env)...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/connection.rb: in catch
      catch(:async) do...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/connection.rb: in pre_process
      catch(:async) do...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/connection.rb: in process
        post_process(pre_process)...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/connection.rb: in receive_data
      process if @request.parse(data)...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/eventmachine-1.0.0.beta.4/lib/eventmachine.rb: in run_machine
        run_machine...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/eventmachine-1.0.0.beta.4/lib/eventmachine.rb: in run
        run_machine...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/backends/base.rb: in start
          EventMachine.run(&starter)...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/server.rb: in start
      @backend.start...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/rack-1.4.0/lib/rack/handler/thin.rb: in run
        server.start...
/usr/local/sproutcore/lib/sproutcore/rack/service.rb: in start
        server.run app, opts...
/usr/local/sproutcore/lib/sproutcore/tools/server.rb: in server
          SC::Rack::Service.start(options.merge(:project => project))...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/thor-0.14.6/lib/thor/task.rb: in run
        instance.send(name, *args) : instance.class.handle_no_task_error(name)...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/thor-0.14.6/lib/thor/invocation.rb: in invoke_task
        task.run(self, *args)...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/thor-0.14.6/lib/thor.rb: in dispatch
        new(args, opts, config).invoke_task(task, trailing || [])...
/usr/local/sproutcore/bundle/ruby/1.9.1/gems/thor-0.14.6/lib/thor/base.rb: in start
        dispatch(nil, given_args.dup, nil, config)...
/usr/local/sproutcore/lib/sproutcore/tools.rb: in start
          super(args)...
/usr/local/sproutcore/lib/sproutcore/tools.rb: in invoke
      start([task_name.to_s] + ARGV)...
/usr/bin/sc-server: in <main>
SC::Tools.invoke 'server'...
Request information

GET
No GET data.
POST
No POST data.
COOKIES
No cookie data.
Rack ENV
Variable    Value
GATEWAY_INTERFACE   
CGI/1.2
HTTP_ACCEPT 
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_CHARSET 
ISO-8859-1,utf-8;q=0.7,*;q=0.3
HTTP_ACCEPT_ENCODING    
gzip,deflate,sdch
HTTP_ACCEPT_LANGUAGE    
en-US,en;q=0.8
HTTP_CONNECTION 
keep-alive
HTTP_HOST   
localhost:4020
HTTP_USER_AGENT 
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7
HTTP_VERSION    
HTTP/1.1
PATH_INFO   
/todos
QUERY_STRING    
REMOTE_ADDR 
127.0.0.1
REQUEST_METHOD  
GET
REQUEST_PATH    
/todos
REQUEST_URI 
/todos
SCRIPT_NAME 
SERVER_NAME 
localhost
SERVER_PORT 
4020
SERVER_PROTOCOL 
HTTP/1.1
SERVER_SOFTWARE 
thin 1.2.11 codename Bat-Shit Crazy
async.callback  
#<Method: Thin::Connection#post_process>
async.close 
#<EventMachine::DefaultDeferrable:0x00000100d35df0>
rack.errors 
#<IO:<STDERR>>
rack.input  
#<StringIO:0x00000100d38aa0>
rack.multiprocess   
false
rack.multithread    
false
rack.recursive.include  
#<Method: Rack::Recursive#include>
rack.request.cookie_hash    
{}
rack.request.query_hash 
{}
rack.request.query_string   
rack.run_once   
false
rack.url_scheme 
http
rack.version    
[1, 0]
You're seeing this error because you use Rack::ShowExceptions.
È stato utile?

Soluzione

Simply follow the Advanced Install: http://sproutcore.com/install_mac/#tab=advanced-install It will fix it. If you don't have git (point 1 of the advanced installation) the third row is deprecated. Use "bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer ) " instead of "./rvm-installer --version latest".

Altri suggerimenti

The server can't find the sproutcore source. Try creating a frameworks directory (parallel with the apps directory), and git clone sproutcore into it. Then do the following from within your project.

rm -rf tmp
sc-server

You shouldn't have to do this. The build tools should (used to) have their own copy of SC that they use.

What my solution here is is to just specify your own SC source base (by putting it in frameworks) and sc-server should find that. Now you can make modifications to the source and they will be used in your project. You can also switch versions of sproutcore this way; e.g. you can do

git checkout REL-1.7.0

from within the frameworks/sproutcore dir

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top