Rails:生产中缺少资产(没有路由匹配 [GET] "/assets/application-12345.css")
Rails: assets are missing in production(No route matches [GET] "/assets/application-12345.css")
我有 Rails 4 个应用程序。当我 运行 它处于开发模式时,一切正常,但是当我 运行 它处于生产模式时,资产丢失并出现主题错误。
示例我如何使用资产:
<%= javascript_include_tag :application %>
<%= stylesheet_link_tag :application, media: 'all' %>
有什么问题吗?感谢您的时间和帮助。
错误消息如下:
GET http://127.0.0.1:3000/assets/application-562bac274264d04046337005941c14dc9909665bcdecf8739957ad529b009127.js 404 (Not Found)
我的 application.js 和 .css 文件(编译版本)在
myproject\public\assets
并且 application.js 和 .css 文件(源文件)在
myproject\app\assets\javascrips and myproject\app\assets\stylesheets
我是 运行 应用 Windows,如果它很重要的话。
问题是在生产中,资产是 precompiled
& fingerprinted
,因此直接调用它们是行不通的。您必须调用 文件名 仅:
<%= stylesheet_link_tag :application, media: 'all' %>
<%= javascript_include_tag :application %>
您还需要确保将 stylesheets
/ javascripts
保存在适当的目录中。我不明白你为什么要把 application.css
放在 /javascripts
中。
上述工作的原因是因为它们在操作系统中使用 asset_path
helper, which allows Rails to pull the appropriate file from a set of relative paths. Rather like the PATH
var,这意味着您可以调用可能已在生产中指纹识别的资产。
我有 Rails 4 个应用程序。当我 运行 它处于开发模式时,一切正常,但是当我 运行 它处于生产模式时,资产丢失并出现主题错误。
示例我如何使用资产:
<%= javascript_include_tag :application %>
<%= stylesheet_link_tag :application, media: 'all' %>
有什么问题吗?感谢您的时间和帮助。
错误消息如下:
GET http://127.0.0.1:3000/assets/application-562bac274264d04046337005941c14dc9909665bcdecf8739957ad529b009127.js 404 (Not Found)
我的 application.js 和 .css 文件(编译版本)在
myproject\public\assets
并且 application.js 和 .css 文件(源文件)在
myproject\app\assets\javascrips and myproject\app\assets\stylesheets
我是 运行 应用 Windows,如果它很重要的话。
问题是在生产中,资产是 precompiled
& fingerprinted
,因此直接调用它们是行不通的。您必须调用 文件名 仅:
<%= stylesheet_link_tag :application, media: 'all' %>
<%= javascript_include_tag :application %>
您还需要确保将 stylesheets
/ javascripts
保存在适当的目录中。我不明白你为什么要把 application.css
放在 /javascripts
中。
上述工作的原因是因为它们在操作系统中使用 asset_path
helper, which allows Rails to pull the appropriate file from a set of relative paths. Rather like the PATH
var,这意味着您可以调用可能已在生产中指纹识别的资产。