我正在尝试使用Rails 4和Turbolinks在具体页面中创建JS代码段.我尝试过标准解决方案:
<script type="text/javascript">
var ready = function() {
// Bla bla
};
$(document).ready(ready);
$(document).on('page:load', ready);
</script>
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.我的代码片段是这样的:
<script type="text/javascript">
function ismready()
{
var API_KEY = "api key";
var roomId = "room id";
var ism = new Ismuser(API_KEY, roomId);
ism.init({
board: {
layer: "board"
},
video: {
camsContainer: "guest"
},
chat: {
layer: "chat"
},
moderator: true,
});
}
</script>
<script src="http://assets.ismuser.com/v0.4/js/ismuser.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
该片段无法按预期工作(即使使用标准解决方案),最后我只想在此页面中禁用Turbolinks.
我该怎么做?
- 解决方案
<% content_for :body do %>
<% if controller.controller_name == 'home' && controller.action_name == …Run Code Online (Sandbox Code Playgroud) 我正在按照这个方法在注册成功后修改确认页面.
我做的一切都像它说的但我得到这个错误:
in `add_route': Invalid route name, already in use: 'new_user_session' (ArgumentError)
You may have defined two routes with the same name using the `:as` option, or you may be overriding a route already defined by a resource with the same naming. For the latter, you can restrict the routes created with `resources` as explained here:
http://guides.rubyonrails.org/routing.html#restricting-the-routes-created
Run Code Online (Sandbox Code Playgroud)
我想wiki没有更新使用Devise with Rails 4,但我没有找到足够的信息来修复错误.
返回错误的行是next(routes.rb):
devise_for :users, :controllers => { :registrations => "registrations" }
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
谢谢.
编辑 -
registrations_controller.rb
class RegistrationsController < …Run Code Online (Sandbox Code Playgroud) 今天早上我一直在研究我的项目.我完成了我正在做的事情,我将新代码推送到git.
现在,我去运行我的项目开始工作,索引视图不运行!
Could not import ism.views.index. View does not exist in module ism.views.
Run Code Online (Sandbox Code Playgroud)
这个视图没有任何问题.所有的项目都运行了.
有更令人难以置信的事情.我在主视图(ism.views.index)失败后尝试并检查了其他视图,但所有这些视图都有效,但现在不行!10秒前所有视图都正确运行,现在都无法正常工作.他们吐出与主视图相同的错误.
我发现在互联网上搜索这个相关主题:
对于django而言,这种观点并不存在,但是它之前有5个secondes并且它仍然存在
但我试图删除原始文件(ism应用程序中的views.py)并再次写入,问题仍然存在.所有其余的views.py都一样.
有人知道这个问题吗?
谢谢=)
我正在尝试为我的项目激活不同的语言.现在英语和西班牙语.
我将描述我遵循的所有步骤:
首先,我把自己放在我要翻译的目录中.或者更好地说,所有{%trans%}标签都是:
$ cd media/templates/landing/
$ mkdir locale
$ django-admin.py makemessages --locale=en
Run Code Online (Sandbox Code Playgroud)
上一个命令创建目录/ file /locale/en/LC_MESSAGES/django.po
我打开django.po,然后继续用英语填写所有msgstr字段.msgstr标签是西班牙语.我尊重有关长消息案例的提示.填写此文件后,我做:
$ django-admin.py compilemessages
Run Code Online (Sandbox Code Playgroud)
这个过程django.po并创建django.mo.
所以我修改了settings.py.重要内容:
TEMPLATE_CONTEXT_PROCESSORS = (
'ism.context_processor.user_vars',
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.contrib.messages.context_processors.messages',
'django.core.context_processors.request',
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'pipeline.middleware.MinifyHTMLMiddleware',
}
TIME_ZONE = 'Atlantic/Canary'
LANGUAGE_CODE = 'es'
USE_I18N = True
_ = lambda s: s
LANGUAGES = (
('es', _('Espanol')),
('en', _('English')),
)
USE_L10N = True
USE_TZ = True
Run Code Online (Sandbox Code Playgroud)
最后,我将此行添加到URLS.py:
(r'^i18n/', include('django.conf.urls.i18n')),
Run Code Online (Sandbox Code Playgroud)
我重新启动我的开发服务器,我配置我的Firefox浏览器首先选择英语作为主要语言,它不起作用.所有文本仍以西班牙文显示,而不是英文.
我确保Firefox配置为英文,因为在Django视图函数(呈现.html)中我使用request.LANGUAGE_CODE进行打印,打印"en".
我弄错了什么?
我正在使用AngularJS(MEAN.io堆栈),并且我遇到了与滚动相关的烦人故障.
当用户单击链接时,目标页面采用与原始页面相同的滚动位置,而不是保持在最顶层.
为了解决这种奇怪的行为,我使用了下一个:
$rootScope.$on("$viewContentLoaded", function () {
$anchorScroll();
});
Run Code Online (Sandbox Code Playgroud)
但是这段代码使得每一页都在顶部位置上滚动,这也很烦人,因为用户必须能够返回并恢复之前的滚动位置.
有什么建议吗?我怎样才能得到理想的结果?
谢谢!
编辑--------------------
当我尝试使用ng-view + autoscroll解决方案时,它对我不起作用,我不知道为什么.
这是我在我的default.html页面中使用它的方式,该页面由服务器提供:
<body ng-cloak class="ng-cloak" ng-class="{state: true, auth: authPage}" ng-controller="BodyController">
<div ng-include="'/system/views/header.html'"></div>
<section class="content">
<div data-ng-include="'/ceh-admin/views/adminShortcuts.html'"></div>
<div ng-view autoscroll="true">{% block content %}{% endblock %}</div>
</section>
<div data-ng-include="'/system/views/footer.html'"></div>
{% include '../includes/foot.html' %}
</body>
Run Code Online (Sandbox Code Playgroud)
我的HTML代码有些奇怪吗?
我们正在尝试为我们的服务开发一个 API,但我们对如何完成身份验证过程感到怀疑。我们的客户端必须能够包含与我们的 Node.js 服务器连接的 .js 文件。这里的关键点是我们的后端必须跟踪 API 的使用情况,以便我们的客户将根据其使用情况付费。
我们的目的是为用户设计尽可能简单的 API,并确保其安全。我们想过:
为每个用户创建一个 API_KEY 并将其与每个请求中的域相匹配。这里的问题可能是域名不是最安全的选择,不是吗?我们知道该域可能会在 HTTP 请求中被替换。
使用具有 API_KEY 和 SECRET_KEY 的 SDK 为给定会话和用户生成令牌。我一点也不讨厌这个选项,但我们更喜欢为开发人员提供一个更简单的解决方案,这并不意味着使用多个 API。
你有什么想法/建议/考虑/什么吗?
提前致谢。
我正在使用 MEAN 并且我正在尝试从服务器端接收事件。为此,我使用 EventSource 但它不起作用。
我看到连接是如何打开的,但我没有从服务器收到任何消息。我可以在 Node 控制台中看到消息是如何发送的,但在客户端什么都没有(浏览器控制台)。
当我遵循我找到的所有教程时,我有点迷茫,但是使用完全相同的代码它不起作用。
在客户端,这是我的 AngularJS 代码:
var source = new EventSource('/api/payments/listen');
source.addEventListener('open', function(e) {
console.log('CONNECTION ESTABLISHED');
}, false);
source.addEventListener('message', function (e) {
$scope.$apply(function () {
console.log('NOTIFICATION');
console.log(e.data);
});
}, false);
source.onmessage = function (e) {
console.log('NOTIFICATION!');
console.log(e);
};
source.addEventListener('error', function(e) {
if (e.readyState === EventSource.CLOSED) {
console.log('CONNECTION CLOSED');
}
}, false);
Run Code Online (Sandbox Code Playgroud)
服务器端代码:
exports.listen = function (req, res) {
if (req.headers.accept && req.headers.accept === 'text/event-stream') {
if ( req.url === '/api/payments/listen' ) {
sendSSE(req, res); …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个浮动div,它会在按钮被触发时显示出来.这并不难,但是当我按下按钮时,页面会自动重新加载.我不知道为什么.
我试图使用Bootstrap的Popover,但由于同样的问题它没有按预期工作.当弹出窗口被触发时,页面重新加载并且弹出窗口明显消失.
我正在使用RoR,只是说如果找出问题会有用.
我在文档的底部有这样的东西:
<a href="#" class="btn btn-small btn-warning" id="example">Show</a>
<script type="text/javascript">
$(document).ready(function() {
console.log("Page is loaded.");
// Custom Popover
$("#example").click(function() {
console.log("Showing");
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
console.log页面加载时会显示第一个内部就绪功能.当我触发"显示"按钮时,console.log再次显示在浏览器的控制台中.这没有任何意义.
谢谢!
最近我将我的Django项目配置为与Amazon S3配合使用.除了/ admin /之外,一切正常.我在控制面板中看不到任何.css或图像.当我从浏览器检查代码时,我可以看到打印的静态文件网址类似于"https:// blablabla".
从https协议我必须同意一个证书来显示请求的对象,所以在/ admin /任何这些文件都无法显示.如果我输入相同的URL但在http下我可以看到该文件而不同意任何内容.
我怎样才能/管理/调用http下的静态文件而不是https下的静态文件?
谢谢!
我正在使用 MEAN.io,并且正在尝试上传 Base64 编码的图像。
客户端,AngularJS:
// Image we're going to send it out
var base64Image = files[i];
var file = {
image: base64Image,
type: type,
filetype: extension,
characterId: character._id
};
var newFile = new MediaSendBase64(file);
newFile.$save(function(image) {
if ( !image ) {
console.log('ERROR IMAGE');
}
else {
console.log('SUCCESS.');
console.log(image);
}
});
Run Code Online (Sandbox Code Playgroud)
服务器端、NodeJS、控制器:
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
exports.uploadBase64 = function(req, res, next) {
var uploadPath = path.normalize(process.cwd() + '/packages/characters/public/assets/uploads/'),
data = new Buffer(''),
imgURL = undefined, // public URL …Run Code Online (Sandbox Code Playgroud)