【问题标题】:Some pages are not loading public assets某些页面未加载公共资产
【发布时间】:2020-07-18 14:23:57
【问题描述】:

我的资产在我的公用文件夹中,每当我打开脚手架的索引页面时,它都会很好地加载

但每当我打开任何其他页面(例如显示、新建或编辑)时,它都不会加载我的资产。

这是我的开发配置文件

Rails.application.configure do
  config.cache_classes = false
  config.eager_load = false
  config.consider_all_requests_local = true
  if Rails.root.join('tmp', 'caching-dev.txt').exist?
    config.action_controller.perform_caching = true
    config.action_controller.enable_fragment_cache_logging = true
    config.cache_store = :memory_store
    config.public_file_server.headers = {
      'Cache-Control' => "public, max-age=#{2.days.to_i}"
    }
  else
    config.action_controller.perform_caching = false
    config.cache_store = :null_store
  end
  config.active_storage.service = :local
  config.action_mailer.raise_delivery_errors = false
  config.action_mailer.perform_caching = false
  config.active_support.deprecation = :log
  config.active_record.migration_error = :page_load
  config.active_record.verbose_query_logs = true
  config.assets.debug = true
  config.assets.quiet = true
  config.file_watcher = ActiveSupport::EventedFileUpdateChecker
  config.hosts << "8342f8b743074610bd0c08989dee0747.vfs.cloud9.us-east-2.amazonaws.com"
end

我的应用程序控制器如下所示

class ApplicationController < ActionController::Base
end

和后控制器

class PostsController < ApplicationController
  before_action :set_post, only: [:show, :edit, :update, :destroy]

  # GET /posts
  # GET /posts.json
  def index
    @posts = Post.all
  end

  # GET /posts/1
  # GET /posts/1.json
  def show
  end

  # GET /posts/new
  def new
    @post = Post.new
  end

  # GET /posts/1/edit
  def edit
  end

  # POST /posts
  # POST /posts.json
  def create
    @post = Post.new(post_params)

    respond_to do |format|
      if @post.save
        format.html { redirect_to @post, notice: 'Post was successfully created.' }
        format.json { render :show, status: :created, location: @post }
      else
        format.html { render :new }
        format.json { render json: @post.errors, status: :unprocessable_entity }
      end
    end
  end

  # PATCH/PUT /posts/1
  # PATCH/PUT /posts/1.json
  def update
    respond_to do |format|
      if @post.update(post_params)
        format.html { redirect_to @post, notice: 'Post was successfully updated.' }
        format.json { render :show, status: :ok, location: @post }
      else
        format.html { render :edit }
        format.json { render json: @post.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /posts/1
  # DELETE /posts/1.json
  def destroy
    @post.destroy
    respond_to do |format|
      format.html { redirect_to posts_url, notice: 'Post was successfully destroyed.' }
      format.json { head :no_content }
    end
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_post
      @post = Post.find(params[:id])
    end

    # Only allow a list of trusted parameters through.
    def post_params
      params.require(:post).permit(:name, :about, :desc, :other)
    end
end

这就是控制台的样子

请问有什么问题?

【问题讨论】:

  • 你application_controller.rb 是什么样子的,你也可以在问题中发布该代码吗?当您检查资产未加载的页面时,您是否看到任何错误?如果您打开源代码视图,我假设文件根本没有加载,对吗?
  • 我怀疑其他页面的布局没有正确链接到布局。

标签: ruby-on-rails ruby ruby-on-rails-6


【解决方案1】:

检查您链接到应用程序 javascript 的布局或片段,看起来您正在链接到 js/app.js 而不是 /js/app.js 。图片也一样。

最佳实践是使用 Rails 的 javascript 和样式表链接助手,并可能将它们全部放在一个部分中,例如 _page_head.html.erb 并在所有相关布局中要求它。

不用担心这些小问题,Rails 是一个很棒的框架,你会掌握它的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多