【问题标题】:Sinatra-Assetpack not serving js filesSinatra-Assetpack 不提供 js 文件
【发布时间】:2012-01-17 05:55:21
【问题描述】:

这应该很容易,但它根本不起作用。使用 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'
]

我真的不明白。这是完全相同的代码。文件在那里。有什么建议吗?

【问题讨论】:

  • sinatra 是否提供可能具有启发性的服务器错误日志?
  • 不,没有 Sinatra 错误。 js脚本标签出现:<script src='/javascripts/jquery.js'></script>但是文件不存在。
  • 文件上的ls -l怎么样?
  • Strange 似乎在我的应用程序上工作。我会尝试重现您的问题。

标签: ruby sinatra padrino sinatra-assetpack


【解决方案1】:

不确定这个问题,但你能让基本方法奏效吗? serve '/javascripts', from: '/app/javascripts' 部分是可选的。来自 Readme 仅带有 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 2011-01-27
    • 2021-10-31
    相关资源
    最近更新 更多