3

这应该很容易,但它根本不起作用。使用 sinatra-assetpack 运行 Padrino。所有的 css 文件都像这样完美地服务:

serve '/stylesheets', from: '/app/stylesheets'
css :shared, [
  '/stylesheets/reset.css',
  '/stylesheets/runemadsen.css'
]

但是当尝试提供 .js 文件时,它不起作用。我在脚本加载中得到 404:

serve '/javascripts', from: '/app/javascripts'
js :shared, [
  '/javascripts/jquery.js'
]

我真的不明白。这是完全相同的代码。文件在那里。有小费吗?

4

1 回答 1

0

不确定这个问题,但你能让基本方法奏效吗?该serve '/javascripts', from: '/app/javascripts'部分是可选的。从仅带有 javascript的自述文件中:

require 'sinatra/assetpack'

class App < Sinatra::Base
  set :root, File.dirname(__FILE__)
  register Sinatra::AssetPack

  assets {
    # The second parameter defines where the compressed version will be served.
    # (Note: that parameter is optional, AssetPack will figure it out.)
    js :app, '/js/app.js', [
      '/js/vendor/**/*.js',
      '/js/app/**/*.js'
    ]
  }
end

值得一提的是,我的assets块看起来像这样:

  assets {
    js :main, [
      '/js/jquery.js',
      '/js/application.js',
    ]

jquery 位于public/js,application.coffee 位于app/js. 我的布局(haml)中的脚本标签是=js :main.

于 2012-03-12T11:24:41.913 回答