1

我在生产服务器上遇到了 wicked_pdf 的问题。我在 _results.pdf.haml 中有这样的代码:

#container

= wicked_pdf_javascript_include_tag "pdf_application"
:javascript
  $(document).ready(function(){drawPDFCharts(#{generate_javascript_for_pdf_generator(@poll.answer_count_per_question)}, "container")});

这是 pdf_application.js

//= require jquery
//= require highcharts
//= require poll-pdf-chart-generation.js.coffee

在本地机器和暂存一切都很好,但在生产中出现错误:

Started GET "/121-consumer-electronics.pdf" for 94.76.74.170 at 2013-01-16 13:52:53 +0000
Processing by PollsController#show as PDF
  Parameters: {"id"=>"121-consumer-electronics"}
***************WICKED***************
  Rendered polls/_results.pdf.haml (145.7ms)
Completed 500 Internal Server Error in 816ms

ActionView::Template::Error (pdf_application.js isn't precompiled):
    8: 
    9: #container
    10: 
    11: = wicked_pdf_javascript_include_tag "pdf_application"
    12: :javascript
    13:   $(document).ready(function(){drawPDFCharts(#{generate_javascript_for_pdf_generator(@poll.answer_count_per_question)}, "container")});

这是我的production.rb:

# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = true

# Compress JavaScripts and CSS
config.assets.compress = true

# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false

# Generate digests for assets URLs
config.assets.digest = true

我不知道如何使它工作,我在这里看到了一些类似的问题,我尝试将此文件添加到预编译数组并重新启动服务器,但它没有帮助。当我得到我在本地机器上编译资产时,没有在生产中编译,并且当我尝试运行它时,这个文件没有被预编译......

4

2 回答 2

0

听起来 .js 文件已更改且未重新编译。Rails 3 将 js、css 和样式表编译成一个文件,然后发送给浏览器一次。如果资产目录中的任何内容发生更改,则必须重新编译整个内容。尝试

bundle exec rake assets:precompile

祝你好运

鲍勃

于 2013-03-12T05:26:40.960 回答
0

哪个文件包含您要使用的 javascript 代码?是 poll-pdf-chart-generation.js.coffee 吗?

我不确定 wicked pdf 是否可以使用咖啡文件,但如果我错了,有人可以纠正我。

我相信解决方法是尝试将 poll-pdf-chart-generation.js.coffee 转换为 js 文件并将其添加到 production.rb:

config.assets.precompile += ['poll-pdf-chart-generation.js']

参考:关于资产管道的 Rails 指南

更改您的 wickedpdf 包含标签以查看预编译的 js 资产:

wicked_pdf_javascript_include_tag "poll-pdf-chart-generation"

您还需要预编译资产:

bundle exec rake assets:precompile
于 2013-03-25T05:12:04.150 回答