diff --git a/config/environments/production.rb.example b/config/environments/production.rb.example deleted file mode 100644 index be2bdf3d7..000000000 --- a/config/environments/production.rb.example +++ /dev/null @@ -1,111 +0,0 @@ -Rails.application.configure do - # Settings specified here will take precedence over those in config/application.rb. - - # Code is not reloaded between requests. - config.cache_classes = true - - # Eager load code on boot. This eager loads most of Rails and - # your application in memory, allowing both threaded web servers - # and those relying on copy on write to perform better. - # Rake tasks automatically ignore this option for performance. - config.eager_load = true - - # Full error reports are disabled and caching is turned on. - config.consider_all_requests_local = false - config.action_controller.perform_caching = true - - # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] - # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). - # config.require_master_key = true - - # Disable serving static files from the `/public` folder by default since - # Apache or NGINX already handles this. - ## config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? - config.public_file_server.enabled = true - - # Compress JavaScripts and CSS. - config.assets.js_compressor = :uglifier - # config.assets.css_compressor = :sass - - # Do not fallback to assets pipeline if a precompiled asset is missed. - config.assets.compile = false - - # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb - - # Enable serving of images, stylesheets, and JavaScripts from an asset server. - # config.action_controller.asset_host = 'http://assets.example.com' - - # Specifies the header that your server uses for sending files. - # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache - # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX - - # Store uploaded files on the local file system (see config/storage.yml for options) - config.active_storage.service = :local - - # Mount Action Cable outside main process or domain - # config.action_cable.mount_path = nil - # config.action_cable.url = 'wss://example.com/cable' - # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ] - - # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. - # config.force_ssl = true - - # Use the lowest log level to ensure availability of diagnostic information - # when problems arise. - config.log_level = :info - - # Prepend all log lines with the following tags. - config.log_tags = [ :request_id ] - - # Use a different cache store in production. - # config.cache_store = :mem_cache_store - - # Use a real queuing backend for Active Job (and separate queues per environment) - # config.active_job.queue_adapter = :resque - # config.active_job.queue_name_prefix = "educoderplus_#{Rails.env}" - - config.action_mailer.perform_caching = false - - # Ignore bad email addresses and do not raise email delivery errors. - # Set this to true and configure the email server for immediate delivery to raise delivery errors. - # config.action_mailer.raise_delivery_errors = false - - # Enable locale fallbacks for I18n (makes lookups for any locale fall back to - # the I18n.default_locale when a translation cannot be found). - config.i18n.fallbacks = true - - # Send deprecation notices to registered listeners. - config.active_support.deprecation = :notify - - # Use default logging formatter so that PID and timestamp are not suppressed. - config.log_formatter = ::Logger::Formatter.new - - # Use a different logger for distributed setups. - # require 'syslog/logger' - # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') - - if ENV["RAILS_LOG_TO_STDOUT"].present? - logger = ActiveSupport::Logger.new(STDOUT) - logger.formatter = config.log_formatter - config.logger = ActiveSupport::TaggedLogging.new(logger) - end - - # Do not dump schema after migrations. - config.active_record.dump_schema_after_migration = false - - config.active_record.belongs_to_required_by_default = false - - # config.cache_store = :file_store, "#{Rails.root }/files/cache_store/" - #config.cache_store = :redis_store, 'redis://r-bp122bd1b710f274.redis.rds.aliyuncs.com:6379/0/cache', { expires_in: 90.minutes } - config.cache_store = :redis_store, 'redis://10.9.72.102:6379/0/cache', { expires_in: 90.minutes } - - config.action_mailer.delivery_method = :smtp - config.action_mailer.smtp_settings = { - address: 'smtp.exmail.qq.com', - port: 25, - domain: 'smtp.qq.com', - user_name: 'educoder@trustie.org', - password: 'mAZc9EWbe2Kawaqo2', - authentication: 'login', - enable_starttls_auto: true } -end diff --git a/public/react/src/App.js b/public/react/src/App.js index c85ed6b24..f6d9b2d2c 100644 --- a/public/react/src/App.js +++ b/public/react/src/App.js @@ -476,6 +476,9 @@ class App extends Component { this.setState({ mygetHelmetapi:response.data.setting }); + //存储配置到游览器 + localStorage.setItem('chromesetting',JSON.stringify(response.data.setting)); + localStorage.setItem('chromesettingresponse',JSON.stringify(response)); try { if (response.data.setting.tab_logo_url) { this.gettablogourldata(response); diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index d9f9fe53b..8c4b06eb2 100644 --- a/public/react/src/modules/tpm/NewHeader.js +++ b/public/react/src/modules/tpm/NewHeader.js @@ -716,6 +716,28 @@ submittojoinclass=(value)=>{ getAppdata=()=>{ + try { + var chromesettingArray = JSON.parse(localStorage.getItem('chromesetting')); + var chromesettingresponseArray = JSON.parse(localStorage.getItem('chromesettingresponse')); + // console.log("NewHeaderNewHeaderNewHeader"); + // console.log(chromesettingArray); + // console.log(chromesettingresponseArray); + + this.setState({ + mygetHelmetapi2:chromesettingArray + }); + if (chromesettingArray.tab_logo_url) { + this.gettablogourldata(chromesettingresponseArray); + } else { + this.gettablogourlnull(); + } + }catch (e) { + console.log("head获取游览器配置失败 重新请求开始读取配置"); + this.geturlsdata(); + } + }; + + geturlsdata=()=>{ let url = "/setting.json"; axios.get(url).then((response) => { // console.log("app.js开始请求/setting.json"); @@ -725,6 +747,8 @@ submittojoinclass=(value)=>{ this.setState({ mygetHelmetapi2:response.data.setting }); + localStorage.setItem('chromesetting',JSON.stringify(response.data.setting)); + localStorage.setItem('chromesettingresponse',JSON.stringify(response)); try { if (response.data.setting.tab_logo_url) { this.gettablogourldata(response); @@ -751,7 +775,7 @@ submittojoinclass=(value)=>{ this.gettablogourlnull(); }); - }; + } matchpaths=(url)=>{ diff --git a/public/react/src/modules/tpm/TPMIndexHOC.js b/public/react/src/modules/tpm/TPMIndexHOC.js index a198c0f36..e44dac83b 100644 --- a/public/react/src/modules/tpm/TPMIndexHOC.js +++ b/public/react/src/modules/tpm/TPMIndexHOC.js @@ -315,6 +315,27 @@ export function TPMIndexHOC(WrappedComponent) { } //获取当前定制信息 getAppdata = () => { + try { + var chromesettingArray = JSON.parse(localStorage.getItem('chromesetting')); + var chromesettingresponseArray = JSON.parse(localStorage.getItem('chromesettingresponse')); + // console.log("TPMLNdexHOC"); + // console.log(chromesettingArray); + // console.log(chromesettingresponseArray); + this.setState({ + mygetHelmetapi:chromesettingArray + }); + if (chromesettingArray.tab_logo_url) { + this.gettablogourldata(chromesettingresponseArray); + } else { + this.gettablogourlnull(); + } + }catch (e) { + console.log("hoc获取游览器配置失败 重新请求开始读取配置"); + this.getAppdatausr(); + } + + }; + getAppdatausr=()=>{ let url = "/setting.json"; axios.get(url).then((response) => { // console.log("app.js开始请求/setting.json"); @@ -324,6 +345,8 @@ export function TPMIndexHOC(WrappedComponent) { this.setState({ mygetHelmetapi: response.data.setting }); + localStorage.setItem('chromesetting',JSON.stringify(response.data.setting)); + localStorage.setItem('chromesettingresponse',JSON.stringify(response)); try { if (response.data.setting.tab_logo_url) { this.gettablogourldata(response); @@ -350,7 +373,8 @@ export function TPMIndexHOC(WrappedComponent) { this.gettablogourlnull(); }); - }; + + } /** 课堂权限相关方法,暂时写这里了 ----------------------------------------END */ diff --git a/public/stylesheets/educoder/edu-all.css b/public/stylesheets/educoder/edu-all.css index d4b5633d7..8be6e00ab 100644 --- a/public/stylesheets/educoder/edu-all.css +++ b/public/stylesheets/educoder/edu-all.css @@ -3815,5 +3815,5 @@ a.singlepublishtwo{ } .RightPaneDrawer .jupyter_data_list{ - max-height: 340px; -} \ No newline at end of file + max-height: 340px; + } \ No newline at end of file