小编010*_*101的帖子

我用Fancybox图像得到404错误

我的日志中有400个错误与fancybox有关.

/products/product1/fancybox/fancy_shadow_se.png
/products/product1/fancybox/fancy_shadow_ne.png
/products/product1/fancybox/fancy_shadow_n.png
/products/product1/fancybox/fancy_nav_right.png
/products/product1/fancybox/fancy_close.png
Run Code Online (Sandbox Code Playgroud)

这些png都在fancybox css文件中引用.例如:

.fancybox-ie #fancy-bg-n    { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_n.png', sizingMethod='scale'); }
.fancybox-ie #fancy-bg-ne   { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_ne.png', sizingMethod='scale'); }
.fancybox-ie #fancy-bg-e    { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_e.png', sizingMethod='scale'); }
.fancybox-ie #fancy-bg-se   { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_se.png', sizingMethod='scale'); }
.fancybox-ie #fancy-bg-s    { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_s.png', sizingMethod='scale'); }
.fancybox-ie #fancy-bg-sw   { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_sw.png', sizingMethod='scale'); }
.fancybox-ie #fancy-bg-w    { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_w.png', sizingMethod='scale'); }
.fancybox-ie #fancy-bg-nw   { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_nw.png', sizingMethod='scale'); }
Run Code Online (Sandbox Code Playgroud)

我在这个位置安装了fancybox:

/js/fancybox/
Run Code Online (Sandbox Code Playgroud)

盒子出现了很好漂亮.

那有什么不对?我无法弄清楚.CSS看起来正确,我想我已经将它安装在正确的位置.一个不正确的解决方案是将绝对路径放在CSS文件中.还有其他想法吗?

css jquery fancybox http-status-code-404

5
推荐指数
1
解决办法
6708
查看次数

如何在C#中检测DataReader上的EOF而不执行Read()

我熟悉使用.Read()来检测EOF

        using (IDataReader reader = SqlHelper.ExecuteReader(_connectionString, "dbo.GetOrders"))
        {
            AssertOrder(reader);

            while (reader.Read())
            {
                yield return FillRecord<Order>(reader, StringComparer.OrdinalIgnoreCase);
            }
            reader.Close();
        }
Run Code Online (Sandbox Code Playgroud)

由于我遇到了一些奇怪的情况,FillRecord实际上推动了读者.所以现在while循环中的.Read()实际上会导致这个函数跳过一些行 - 因为我们正在前进两次.

我希望有一个IDataReader.EOF,但没有.有什么想法吗?

c# ado.net

5
推荐指数
1
解决办法
8498
查看次数

如何使用名为 Configuration 的 MSBuild 命令行参数作为条件编译符号?

我想显示一个字符串,告诉用户使用哪个构建配置来构建应用程序。例如:

如果命令行类似于:

msbuild project.sln /t:Build /p:Configuration=Release
Run Code Online (Sandbox Code Playgroud)

然后在源代码中,我想这样做:

Console.Writeline("You are running the " + <get the /p:Configuration value> + " version" );
Run Code Online (Sandbox Code Playgroud)

用户会看到:

您正在运行 Release 版本

我知道,我们可以宣布在命令条件编译符号(#定义),例如提示符如何定义在这篇文章中这一个。但我想使用名为Configuration.

c# msbuild visual-studio

5
推荐指数
1
解决办法
8911
查看次数

如何在 NGINX conf 文件中使用 conf 文件的文件名?

如果我有一个名为mysite.conf存储在/etc/nginx/conf.d. 'mysite'有没有办法从conf文件中 获取字符串值?

我想对一个通用的 .conf 文件进行多次符号链接,因为除了一个小字符串之外,它们都是相同的。作为一个简单的例子,而不是这样:

server {
    #
    # snip
    #

    access_log /var/log/nginx/mysite_access.log;
    error_log /var/log/nginx/mysite_error.log;

    #
    # snip
    #
}
Run Code Online (Sandbox Code Playgroud)

我想做这个:

server {
    #
    # snip
    #

    access_log /var/log/nginx/$filename_access.log;
    error_log /var/log/nginx/$filename_error.log;

    #
    # snip
    #
}
Run Code Online (Sandbox Code Playgroud)

我想为该文件命名mysite.conf,并且想对另外 5 个文件进行符号链接:

/etc/nginx/conf.d/mynextsite.conf
/etc/nginx/conf.d/myothersite.conf
etc
Run Code Online (Sandbox Code Playgroud)

我想要这个,这样我就可以重复使用完全相同的conf文件来做一些事情。我想到这个是因为我可以uwsgi使用%n变量来做到这一点。不必一直制作一堆文件,这很方便。我只是将它们全部符号链接到同一个位置。我可以使用 nginx conf 文件来做到这一点吗?

nginx

5
推荐指数
1
解决办法
2190
查看次数

如何在 CMAKE/CPACK 项目中惯用地设置版本号?

我正在尝试编辑 CPack 设置,以便输出的包文件中包含正确的版本号。但这还不是全部。我希望 CMake/CPack 也能设置所有更新版本号的地方。.so 文件也应该被设置。还有什么需要它。

从我坐的地方看,CPack 文档似乎在告诉我们要重复一遍。

如果我什么都不做,输出文件是这样的:

mystuff-0.1.1-Linux.tar.gz
Run Code Online (Sandbox Code Playgroud)

假设版本号应该是 1.2.3。

我认为这是导致所有版本号更改的简约 CPACK 设置——我将这些行放在我的 CMakeLists.txt 文件中:

SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "My app is great")
SET(CPACK_PACKAGE_VENDOR "My Name")
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")

SET(CPACK_PACKAGE_VERSION_MAJOR "1")
SET(CPACK_PACKAGE_VERSION_MINOR "3")
SET(CPACK_PACKAGE_VERSION_PATCH "2")
Run Code Online (Sandbox Code Playgroud)

当我构建时,输出文件仍然是 mystuff-0.1.1-Linux.tar.gz

如果我重复自己并这样做:

SET(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
Run Code Online (Sandbox Code Playgroud)

现在该变量已设置,但文件仍然 mystuff-0.1.1-Linux.tar.gz

看来我也必须改变 CPACK_PACKAGE_FILE_NAME

我还有哪些地方需要重新说明版本号?

这感觉不习惯。我一定是遗漏了一些东西才能使这个自动化。我应该在更早的时间点指定变量吗?我还在互联网上看到了一些包含 CPackConfig.cmake 文件的项目——该文件包含覆盖,但我仍然看到一些重复的内容也在其中发生。

这个错误也提到了同样的事情。显然,他们确实希望我们重复自己。(截至 2015 年)但是,即使是这样,我想知道是否有人找到了解决方法?

如果没有解决方法,如何重新声明所有变量,以便它们最终自动正确设置?例如,执行以下操作是一种使用变量组合版本号的方法

SET(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
Run Code Online (Sandbox Code Playgroud)

根据文档,文件名的组成如下:

SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}")

可能还有其他变量需要重新设置。如果我必须重述所有内容,那么我究竟需要重述哪些内容才能完成?

cmake

5
推荐指数
1
解决办法
7643
查看次数

如何将 Arduino sketch 文件(.ino 文件)的文件扩展名关联为 C/C++ 文件以进行语法突出显示?

我想使用 KDevelop 作为我的编辑器。我如何告诉 KDevelop 将 .ino 文件视为 C/C++ 文件,以便它执行诸如语法突出显示和“跳转到声明”之类的操作?

有没有地方可以关联文件扩展名?

arduino kdevelop

5
推荐指数
1
解决办法
720
查看次数

python3 扩展的奇怪 rpath 问题

我正在尝试用 Python 创建一个扩展模块。它是现有 C 库(.so 文件)的包装器,我遇到了 rpath 问题。

当我这样做时:

rm -rf build
python3 setup.py build_ext --rpath=$ORIGIN
ldd build/lib.linux-x86_64-3.5/mymodule.cpython-35m-x86_64-linux-gnu.so 
Run Code Online (Sandbox Code Playgroud)

我明白了:

linux-vdso.so.1 (0x00007ffc5aab7000)
libmylibrary.so => not found
libpython3.5m.so.1.0 => /lib64/libpython3.5m.so.1.0 (0x00007f38a0a6b000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f38a084d000)
libc.so.6 => /lib64/libc.so.6 (0x00007f38a0487000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f38a0283000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007f38a007e000)
libm.so.6 => /lib64/libm.so.6 (0x00007f389fd75000)
/lib64/ld-linux-x86-64.so.2 (0x0000560d8fb8f000)
Run Code Online (Sandbox Code Playgroud)

看看怎么没有找到libmylibrary.so?

但是当我这样做时:

rm -rf build
python3 setup.py build_ext
ldd build/lib.linux-x86_64-3.5/mymodule.cpython-35m-x86_64-linux-gnu.so 
Run Code Online (Sandbox Code Playgroud)

我明白了:

linux-vdso.so.1 (0x00007ffc5aab7000)
libpython3.5m.so.1.0 => /lib64/libpython3.5m.so.1.0 (0x00007f38a0a6b000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f38a084d000)
libc.so.6 => /lib64/libc.so.6 (0x00007f38a0487000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f38a0283000) …
Run Code Online (Sandbox Code Playgroud)

c python linux

5
推荐指数
0
解决办法
338
查看次数

当使用代码样式自定义Qt滑块时,手柄会脱离凹槽

大多数示例中,自定义Qt滑块就像这样(使用样式表):

mySlider = new QSlider(centralWidget);
mySlider->setObjectName(QStringLiteral("mySlider"));
mySlider->setGeometry(QRect(645, 678, 110, 21));
mySlider->setOrientation(Qt::Horizontal);
mySlider->setStyleSheet("QSlider::groove:horizontal {background-image:url(:/main/graphics/mySliderBackround.png);}"
               "QSlider::handle:horizontal {background-image:url(:/main/graphics/mySliderHandle.png); height:21px; width: 21px;}");
Run Code Online (Sandbox Code Playgroud)

这对我来说也很好.

我有一种情况,我需要使用动态创建的像素图以编程方式设置背景.使用下面的代码,这就是我完成它的方式. 问题是当我在Fedora Linux上时,这个滑块工作正常.当我在OSX或Windows上时,滑块手柄脱离了goove.

这是OSX上的样子.注意手柄是如何脱离凹槽的.左侧是使用样式表定制的,右侧是使用下面的Style对象自定义的.

样式表自定义与使用Style对象进行自定义

创建滑块并指定样式:

mySlider = new QSlider(centralWidget);
mySlider->setObjectName(QStringLiteral("mySlider"));
mySlider->setGeometry(QRect(645, 678, 110, 21));
mySlider->setOrientation(Qt::Horizontal);
mySlider->setStyle(new MySliderStyle(mySlider->style()));
Run Code Online (Sandbox Code Playgroud)

自定义滑块样式代码:

#ifndef MYSTYLE_H
#define MYSTYLE_H

#include <QObject>
#include <QWidget>
#include <QProxyStyle>
#include <QPainter>
#include <QStyleOption>
#include <QtWidgets/QCommonStyle>

class MySliderStyle : public QProxyStyle
{
      private:
    QPixmap groovePixmap;
    QPixmap handlePixmap;

      public:
    LightingSliderStyle(QStyle *style)
        : QProxyStyle(style)
    {
        setColor(QColor::fromRgba(0));

        this->handlePixmap = <snip initialize the pixmap>; …
Run Code Online (Sandbox Code Playgroud)

c++ qt

5
推荐指数
1
解决办法
1336
查看次数

如何正确检测然后删除无法使用Quartz.net恢复的作业?

由于各种有效的原因,作业存储中的某些作业很旧,无法再恢复。例如,当重构后Job类不再是.NET程序集的一部分时。我想知道如何在调度程序启动时很好地捕获这些问题,然后删除无法恢复的作业。

当应用启动时,我基本上会这样做(删节):

IScheduler scheduler = <create a scheduler and a jobstore object>

try{ scheduler.Start() } catch {}
try{ scheduler.Start() } catch {}
try{ scheduler.Start() } catch {}
Run Code Online (Sandbox Code Playgroud)

如果我打电话Start()三次,调度程序最终将启动。我之所以必须这样做,是因为Start() 它将为无法恢复的旧工作抛出异常。

Failure occured during job recovery.Could not load type 'MyOldClassName' from assembly 'MyAssembly'.

我想优雅地删除损坏的作业并避免这些异常。在我的实际代码中,我记录了这些异常。

有一个更好的方法吗?

quartz-scheduler quartz.net

4
推荐指数
1
解决办法
268
查看次数

在C中减去无符号整数并获取-Wconversion警告

考虑:

uint16_t x;
uint16_t y;

y = 0;
x = y - 1;
Run Code Online (Sandbox Code Playgroud)

X将是一些疯狂的数字. 请参阅其他SO文章的"为什么",并了解2的赞美.

(我不是在问为什么会这样.我知道为什么.我在问别的.请继续阅读.)

如果你打开gcc标志-Wconversion,这个完全有效的C代码将抛出conversion to ‘uint16_t {aka short unsigned int}’ from ‘int’ may alter its value那就是编译器试图帮助我们不要搞砸了.而且我倾向于打开这样的警告,因为它们可以帮助我避免搞砸.

但是,有一些现实情况,我们可能会使用unsigned int作为计数器,并希望减去1并且不会得到此警告.此外,我们希望将其用作计数器,将其降至零,然后停止.要在C中执行此操作,我们必须进行某种检查.但是,这种检查代码会违反gcc警告.

像上面的代码一样.

我想要我的蛋糕,我也想吃它.

这个优雅的解决方案是什么?

c gcc

4
推荐指数
2
解决办法
507
查看次数